使用VS2022开发windows程序时,上报如下错误:
LNK2019 无法解析的外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号
在网上寻找答案,说是项目属性要设置为如下图内容,而不能设置为控制台类型,这是因为控制台类型程序的入口函数为main,而窗口程序的入口函数为WinMain 或者wWinMain,IDE中事先声明了main,WinMain,和wWinMain函数的原型的,被封装在IDE内部,只是没有定义,具体定义实现,是需要用户自己定义。当选择下图中“控制台 (/SUBSYSTEM:CONSOLE)”时,VS内部就会设置宏,将main作为系统入口函数,当选择"窗口 (/SUBSYSTEM:WINDOWS)"时,VS内部就会设置宏,将WinMain或者wWinMain作为系统入口函数。
在我的程序开发当中确实编写的入口函数为WinMain,但是链接器设置当前的项目类型为“控制台”时,在链接时,VS2022会去寻找main的定义,这时在我的代码中只有WinMain的定义,却没有main的定义,所以会上报如上链接错误
但是做了如上更改后,仍然上报相同的错误,然后将VS2022,按照下图设置为x86之后,再次编译错误消失