正如微软自己解释的那样,控制台程序使用main(),但非控制台Win32程序WinMain()用作入口点.实际上,main()在Visual Studio中的Win32项目中使用将导致链接器错误.
但是在Qt项目中,无论是从Qt Creator还是Visual Studio创建的,GUI程序都main()像控制台程序一样使用.Qt人如何设法做到这一点?
Qt利用了WinMain()in inqtbase/src/winmain/qtmain_win.cpp,后来称之为 "虚构" int main(int argc, char *argv[]).
PS你可以通过在调试器中设置断点并查看调用堆栈来找出这种技巧.在Visual Studio中:菜单"调试" - > Windows - >调用堆栈.