Ich bin mir ziemlich sicher, dass dieses Problem nicht neu ist, und ziemlich sicher, dass es schwer zu lösen ist. Hoffentlich liege ich falsch bei letzterem.Loki Singleton zum Arbeiten in DLLs in VS 2008 C++
Ich versuche, das Loki :: Singleton von Modern C++ Design in einem Programm von mir zu verwenden.
Allerdings kann ich nicht scheinen, es über DLLs zu arbeiten. Ich denke, ich weiß, warum dies geschieht: Der Vorlagencode wird in jedem Quellmodul instanziiert, sodass anstelle einer einzigen globalen Variablen jedes Modul seine eigene hat.
Offensichtlich macht dies das Singleton sehr viel nicht-Single.
Gibt es eine Möglichkeit, dieses Verhalten zu umgehen?
Danke, Todd !. Das schien zu funktionieren, und ich fand diesen [KB Artikel] (http://support.microsoft.com/kb/168958) der ausführlich erklärt, was der Beispielcode von SingletonDll (in Loki) macht.Es ist ein Schmerz, richtig zu funktionieren (mit allen declspecs und so), und es lässt mich immer noch mit Code wie m_tick_file = Tick_File_Factory :: Instance() .CreateObject ("OHLC_File")); in meinen Apps. Ich denke, ich könnte am Ende statische Memberfunktionen zu Tick_File hinzufügen, die intern das Loki-Zeug verwenden, dann weiß ich, dass die Vorlagen nur einmal in der .cpp für Tick_File installiert werden –