Bonjour à tous,

J'ai un petit souci avec les variables static locales à une fonction et le linker sous Visual .NET. J'ai une bibliothèque static (un .lib donc) contenant une fonction du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
//dans le .h :
 
typedef Factory<int,Model*> ModelFactory;
ModelFactory& getModelFactory();
 
//dans le .cpp :
ModelFactory& getModelFactory() {
    static ModelFactory factory;
    return factory;
}
Cette fonction est appelée pour initialiser différentes variables static de classes de cette librairie et tout se passe bien, c'est bien la même factory qui est retourné à chaque fois.

J'ai une autre bibliothèque qui lie avec la première. Lorsque j'appelle la fonction getModelFactory() depuis le code de cette deuxième librairie (donc l'instance locale à la fonction est sensée avoir été initialisé puisque ls variables static sont initialisées au tout début), il me réinstancie l'objet factory au lieu de me retourner l'objet déjà instancié.

Quelqu'un saurait à quoi cela est dû ? Merci d'avance.