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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage