Hallo zusammen,
Ich möchte in einem meiner Projekte eine globale Variable, welche ich in einer DLL definiere und initialisiere, in einer anderen DLL nutzen. Dazu habe ich die Variablke in den entsprechenden headern als
|
C-/C++-Quelltext
|
1
|
extern DLL_EXPORT CLogfile* g_pLogfile
|
definiert, wordei DLL_EXPORT mein exportmakro ist. Des weiteren habe ich, wie üblich, meine Include-und Linkerverzeichnisse angepasst. Dennoch bekomme ich vom Linker eine Fehlermeldung, dass das Objekt "g_pLogfiler" nicht aufgelöst sei.
Was mich jedoch verwundert, ist die tatsache, dass dieser Fehler nicht auftritt, wenn ich die DLL, in welcher die Variable initialisiert wird, in eine exe einbinde.
Nach einiger zeit bin ich bei google zwar darauf gestoßen, dass es die Möglichkeit des Anlegens von Shared Data Segments (#pragma data_seg(...)) unter VS2012 gibt, was, soweit ich es verstanden habe, jedoch nur bewirkt, dass eine DLL, welche in mehreren Insatnzen läuft, auf diesen Sopeicher zugreifen kann, und keine anderen DLL's.
Ich hoffe, dass mir hier jemand weiterhelfen kann bzw. sagen kann, ob ich das mit den shared segments richtig verstanden habe.
LG
Niklas