Funktion um hInstance zu bekommen
-
Weiss jemand, ob es eine WinAPI-Funktion gibt die einem hInstance zurueckliefert.
Ich weiss, dass man das sonst aus der WinMain-Parameterliste bezieht. Ich moechte mir aber mein eigenes kleines GUI-Toolkit schreiben und das sollte dem Programmierer soviel unnoetige Arbeit wie moeglich abnehmen, als insbesonder auch hInstance speichern und benutzen.
-
GetModuleHandle mit 0 als ersten Parameter.
[edit]
Scriptstyler, willst mal wieder deinen Postcounter hochpushen hm?
-
yoyo du sich suchen ->
// Get current hInstance HINSTANCE hInstance = GetModuleHandle(0);bidde
-
das ging ja schnell. vielen dank.
-
katana. schrieb:
Weiss jemand, ob es eine WinAPI-Funktion gibt die einem hInstance zurueckliefert.
Ich weiss, dass man das sonst aus der WinMain-Parameterliste bezieht. Ich moechte mir aber mein eigenes kleines GUI-Toolkit schreiben und das sollte dem Programmierer soviel unnoetige Arbeit wie moeglich abnehmen, als insbesonder auch hInstance speichern und benutzen.Dann würde ich eine INIT Funktion einbauene, die hInstance übergibt, andernfalls kann man Dein GUI Kit nicht in einer DLL gebrauchen.
-
Martin Richter schrieb:
katana. schrieb:
Weiss jemand, ob es eine WinAPI-Funktion gibt die einem hInstance zurueckliefert.
Ich weiss, dass man das sonst aus der WinMain-Parameterliste bezieht. Ich moechte mir aber mein eigenes kleines GUI-Toolkit schreiben und das sollte dem Programmierer soviel unnoetige Arbeit wie moeglich abnehmen, als insbesonder auch hInstance speichern und benutzen.Dann würde ich eine INIT Funktion einbauene, die hInstance übergibt, andernfalls kann man Dein GUI Kit nicht in einer DLL gebrauchen.
Wieso nicht? Wo finde ich Details zu dem Thema?
-
In der DLL hast Du ein eigenes "hInstance", welches *nicht* "GetModuleHandle(0)" ist... sondern in DllMain übergeben wird...
Ok, es gibt da auch tricks, aber ganz koscher sind diese nicht, z.B.:
#define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)(geht auch für EXEn
)
-
Warum nicht ganz koscher? Können damit Probleme auftreten?
Geht das auch für statische Librarys?
-
Das geht eigentlich immer...
Siehe auch:
http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx