我试图理解如何用不同的入口点代替WinMainMicrosoft工具链中的工作.
我已经发现了这个问题并且它非常有用,但最后一个细节却在唠叨我.
我第一次Linker>Advanced>Entry Point在Visual Studio中更改了选项时,我将其设置为main错误,我的程序编译并运行正常.我后来意识到并重建了程序设置为mainCRTStartup,如链接问题中接受的答案所示,并没有发现任何不同.
所以,我的问题是:是否有任何差异之间的所有main和mainCRTStartup,如果是这样,有什么区别?
整个错误输出是:
LNK2019 unresolved external symbol wWinMain referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ) kachna-tracker C:\dev\kachna-tracker\MSVCRT.lib(exe_wwinmain.obj)
Run Code Online (Sandbox Code Playgroud)
这是从Qt Creator导入的项目,只有在我尝试构建Release版本时才会出现此错误,Debug版本运行得很好.据我所知,除了使用库的调试版本(例如qtmain.lib/ qtmaind.lib)之外,Debug和Release配置之间的链接器配置没有区别.
我发现这个错误可以固定由子系统设置/SUBSYSTEM:CONSOLE,而不是/SUBSYSTEM:WINDOWS,这确实不解决这个问题,但我建立一个GUI应用程序,一个永久打开控制台窗口是相当难看,也可能只修复了症状而不是原因.
如何解决这个错误?