"APIENTRY tWinMain "и" WINAPI WinMain " разница
в чем отличие от этих 2 функций?:
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
3 ответов
_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
- это
с этой ссылке:
_tWinMain фактически принимает параметр hPrevInstance, но это параметр"использовали t.
_tWinMain - это просто #define для WinMain (в TCHAR.ч.)
нет никакой разницы между два.
и
_tWinMain определяется как WinMain, если UNICODE не определен, и wWinMain, если это так. его цель - позвольте вам написать код, который будет строить как под ansi, так и под unicode.