Вопрос

В чем разница от этих двух функций?:

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
Это было полезно?

Решение

_tWinMain это просто #define ярлык в tchar.h к соответствующей версии WinMain.

Если _UNICODE определяется, тогда _tWinMain расширяется до wWinMain. Анкет В противном случае, _tWinMain такой же как WinMain.

Соответствующий макрос выглядит примерно так (на самом деле есть много других кодов):

#ifdef  _UNICODE
#define _tWinMain  wWinMain
#else
#define _tWinMain  WinMain
#endif

Другие советы

Разница в кодировании параметров, которые в любом случае полностью избыточны. Просто выбросьте параметры и вместо этого используйте следующее, где вы управляете кодированием:

hInstance просто GetModuleHandle(0)

hPrevInstance все равно не действителен в Win32

lpCmdLine доступен как в ANSI, так и в Unicode, через GetCommandLineA() а также GetCommandLineW(), соответственно

nCmdShow это wShowWindow параметр STARTUPINFO структура. Опять же, варианты ANSI и Unicode, доступ к GetStartupInfoA(STARTUPINFOA*) а также GetStartupInfoW(STARTUPINFOW*).

И, используя API Win32 для доступа к ним, вы, вероятно, сэкономите несколько глобальных переменных, например, в том, где вы тщательно сохранили ручку экземпляра, который, по вашему мнению, был доступен только для WinMain.

Из эта ссылка:

_twinmain фактически принимает параметр hprevinstance, но этот параметр не используется.

_twinmain - это просто #Define Winmain (в tchar.h).

Нет разницы между ними.

а также

_twinmain определяется для Winmain, если Unicode не определен, и для Whinmain, если это так. Его цель состоит в том, чтобы позволить вам написать код, который будет построить как при ANSI, так и при Unicode.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top