Je suis assez sûr que ce problème n'est pas nouveau, et assez sûr que c'est difficile à résoudre. J'espère que j'ai tort à propos de ce dernier. J'essaie d'utiliser le Loki :: Singleton de Modern C++ Design dans un de mes programmes.Obtenir Loki Singleton pour travailler dans DLL dans VS 2008 C++
Cependant, je n'arrive pas à l'obtenir pour fonctionner sur les DLL. Je pense savoir pourquoi cela se produit: le code basé sur un modèle est instancié dans chaque module source, donc au lieu d'une variable globale, chaque module a le sien.
De toute évidence, cela rend le Singleton très non-unique.
Est-il possible de contourner ce problème?
Merci, Todd! Cela a semblé fonctionner, et j'ai trouvé ceci [article de KB] (http://support.microsoft.com/kb/168958) qui explique en profondeur ce que l'exemple de code de SingletonDll (dans Loki) fait.C'est difficile de fonctionner correctement (avec tous les declspecs et autres), et cela me laisse toujours avec du code comme m_tick_file = Tick_File_Factory :: Instance() .CreateObject ("OHLC_File")); dans mes applications. Je pense que je pourrais finir par ajouter des fonctions membres statiques à Tick_File, qui utilise en interne les trucs de Loki, alors je sais que les templates ne sont installés qu'une seule fois, dans le fichier .cpp pour Tick_File –