GetModuleHandle (NULL) против hInstanceC++

Программы на C++. Форум разработчиков
Anonymous
GetModuleHandle (NULL) против hInstance

Сообщение Anonymous »

При программировании с использованием Windows API я всегда сразу делал HINSTANCE из WinMain глобальной переменной. Если я хочу создать кнопку «ОК», я бы сделал это так (с учетом глобального HINSTANCE g_hInstance):

Код: Выделить всё

return CreateWindow("BUTTON", "OK", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 10, 10, 100, 30, exampleParentWindow, EXAMPLECHILDID, g_hInstance, NULL);
но в последнее время я вижу, что дескриптор экземпляра определяется без необходимости передавать его в качестве параметра или засорять глобальное пространство имен с помощью вызова GetModuleHandle(NULL)< /код>*. Итак, приведенный выше пример будет выглядеть так:

Код: Выделить всё

return CreateWindow("BUTTON", "OK", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 10, 10, 100, 30, exampleParentWindow, EXAMPLECHILDID, GetModuleHandle(NULL), NULL);
*Если ваш компилятор поддерживает это, вы можете написать GetModuleHandle(nullptr), и этот оператор будет иметь тот же результат.

Какое преимущество (если таковое имеется) у вызова GetModuleHandle(NULL) перед явным указанием дескриптора экземпляра?

Хорошо Печать: Я знаю, что здесь есть ответ, но он не был сформулирован как отдельный вопрос на StackOverflow.

Подробнее здесь: https://stackoverflow.com/questions/217 ... -hinstance

Вернуться в «C++»