GetModuleHandle (NULL) vs hInstance
Beim Programmieren mit der Windows-API habe ich immer die gemachtHINSTANCE
vonWinMain
eine globale Variable sofort. Wenn ich einen OK - Button machen möchte, würde ich es so machen (global gegeben)HINSTANCE g_hInstance
):
return CreateWindow("BUTTON", "OK", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 10, 10, 100, 30, exampleParentWindow, EXAMPLECHILDID, g_hInstance, NULL);
Aber in letzter Zeit wurde festgestellt, dass das Instanzhandle nicht als Parameter übergeben werden muss oder der globale Namespace durch einen Aufruf an verstopft wirdGetModuleHandle(NULL)
*. Das obige Beispiel würde also so aussehen:
return CreateWindow("BUTTON", "OK", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 10, 10, 100, 30, exampleParentWindow, EXAMPLECHILDID, GetModuleHandle(NULL), NULL);
* Wenn Ihr Compiler dies unterstützt, können Sie schreibenGetModuleHandle(nullptr)
und die Anweisung wird das gleiche Ergebnis haben.
Was ist der Vorteil (falls vorhanden) eines Anrufs?GetModuleHandle(NULL)
über explizite Angabe des Instanzhandles?
Kleingedrucktes: Ich weiß, dass dies eine Antwort hat, aber es wurde nicht als eigene Frage zu StackOverflow formuliert.