DLL Variablen für andere Apps freigeben
-
Hallo,
Wenn ich Funktionen oder Klassen in C++ schreibe die ich in einer DLL haben will,
schreibe ich das so:#define API __declspec(dllexport) class API GlobalClass { /* ... */ }; API void GlobalFunction();Wie aber muss ich das schreiben wenn ich auch Variablen global haben will?
So scheint das nicht zu funktionieren:
API int GlobalVariable; // Oder so: int API GlobalVariable;
-
Was scheint dabei nicht zu gehen?
Schau Dir die DLL via www.dependencywalker.com an...
-
Naja in dem anderen Programm meckert der Compiler die jeweilige Variable wäre nicht definiert.
"Undefined reference to ..."
-
Fehlt Dir vielleicht das dazugehörige dllimport?
Simon
-
Variable in DLLs sind gewöhnlich strikt lokal für die jeweilige Instanz der DLL. Das heisst, sie sind nur für die die DLL aufrufende Anwendung verfügbar. Du suchst aber globale Daten für mehrere Anwendungen, die dieselbe DLL benutzen. Das wird nicht von allen Compilern/Linkern direkt unterstützt, von Borland jedenfalls nicht. Interessiert mich auch, wie man das compiler-unabhängig machen kann.