Qt如何在Windows中为非控制台应用程序使用main()?

sas*_*alm 2 c++ windows qt

正如微软自己解释的那样,控制台程序使用main(),但非控制台Win32程序WinMain()用作入口点.实际上,main()在Visual Studio中的Win32项目中使用将导致链接器错误.

但是在Qt项目中,无论是从Qt Creator还是Visual Studio创建的,GUI程序都main()像控制台程序一样使用.Qt人如何设法做到这一点?

Iva*_*rop 6

Qt利用了WinMain()in inqtbase/src/winmain/qtmain_win.cpp,后来称之为 "虚构" int main(int argc, char *argv[]).

PS你可以通过在调试器中设置断点并查看调用堆栈来找出这种技巧.在Visual Studio中:菜单"调试" - > Windows - >调用堆栈.