xRo*_*bot 18 c++ windows winapi winmain
这两个功能有什么区别?:
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
Run Code Online (Sandbox Code Playgroud)
Cod*_*ray 46
_tWinMain只是#definetchar.h中适当版本的快捷方式WinMain.
如果_UNICODE已定义,则_tWinMain扩展为wWinMain.否则,_tWinMain就是一样的WinMain.
相关的宏看起来像这样(实际上有很多其他代码散布在一起):
#ifdef _UNICODE
#define _tWinMain wWinMain
#else
#define _tWinMain WinMain
#endif
Run Code Online (Sandbox Code Playgroud)
Ben*_*igt 21
不同之处在于参数的编码,无论如何都是完全冗余的.只需丢弃参数,然后使用以下命令控制编码:
hInstance 只是 GetModuleHandle(0)
hPrevInstance 无论如何在Win32中无效
lpCmdLineANSI和Unicode 分别提供via GetCommandLineA()和GetCommandLineW()
nCmdShow是结构的wShowWindow参数STARTUPINFO.同样,ANSI和Unicode变体,使用GetStartupInfoA(STARTUPINFOA*)和访问GetStartupInfoW(STARTUPINFOW*).
通过使用Win32 API来访问它们,您可能会保存一些全局变量,例如您小心保存您认为仅可用的实例句柄的变量WinMain.