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 :
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.
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; }
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.
Partager