globale Variable

xkris

Mitglied
Hallo,

habe folgendes Problem: ich definiere in einer DLL ein Variable vom Typ Hinstance die innerhalb der Funktion init initialisiert wird:

Code:
HINSTANCE m_LStep4;
...
...
...
extern "C" __declspec(dllexport) void init()
{
       m_LStep4=LoadLibrary("lstep4x.dll");
}
Ich möchte, dass m_LStep4 auch nach verlassen der DLL weiter zur Verfügung steht. Ich war der Meinung ich könne dies erreichen in dem ich Hinstance in der DLL als extern definiere ( damit der compiler weiss, dass das ding woanders definiert wird) und die eigentliche Definition im Hauptprogramm erledige. Aber der Compiler mag das nicht.
Eine vorstellbare alternative wäre, die Variable in der DLL als global zu definieren, hab aber keine Ahnung ob sowas möglich ist.
Wenn jemand Rat weiss wäre ich äußerst dankbar :)

gruß
kristian
 
Warum nciht eine getter- und setter Funktion schreiben die man "von ausserhalb" der dll aufrufen kann. Halte ich imho für sauberer als globale variablen nach Außen zu kommunizieren und vor allem sich darauf verlassen zu müssen daß ein externen programmierer dran denken muß die Variablen deiner DLL zu definieren.

Btw, die Namensgeben m_LStep4 halte ich für extrem schlecht gewählt, weil das "m" bzw "m_" Prefix (so man Prefixes verwendet) für Membervariablen innerhalb einer Klasse steht.
 
Zurück