WinMain/wWinMain不是真正的 Windows 入口点。Windows 只是使用零参数调用PE标头中指定的函数。
使用 Microsoft 工具链时,这是void WinMainCRTStartup() { ... }在创建 GUI 应用程序时为您提供的,除非您与/Zl链接。
WinMainCRTStartupVisual C++ 创建的默认代码初始化 C 运行时库,调用全局构造函数(如果有),然后使用from 、命令行 from (跳过命令行中的文件名)和 show调用您的WinMain/wWinMain函数命令来自.HINSTANCEGetModuleHandle(NULL)GetCommandLineA/W()GetStartupInfo
WinMain和之间的唯一区别wWinMain是命令行字符串,您应该wWinMain在 Unicode 应用程序中使用(并且现在创建的所有应用程序都应该使用 Unicode)。你当然也可以手动调用GetCommandLineW()在WinMain和自己解析它,如果你真的想。
在 Windows NT/2000/XP 和更高版本中,命令行在内部是一个 Unicode 字符串,并且WinMain/GetCommandLineA()为您提供了一个转换版本,它可能无法正确表示每个字符。在 Windows 95/98/ME 上,情况正好相反,但GetCommandLineW()始终能够将每个字符从GetCommandLineA().