最近做上机作业经常碰到一个错误:LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 "int __cdecl invoke_main。
因为开始时对win32项目和win32控制台项目比较茫然,基本上课本上让我新建啥我就建啥项目,没去深究。在三番两次遇见这个
错误之后,终于下决心把这两个东西搞一遍。
首先是解决办法:
将新建的win32项目改为win32控制台项目,属性--链接器--系统--子系统。
二者的主要区别还是在入口上,因此当选择错误的入口时,程序会报错。
Win32控制台程序:初始代码模版以main为程序入口,默认情况下,只链接C++运行时库和一些核心的win32库,链接器subsystem
参数为console类型,所以编译出来的程序会有黑色的控制台窗口作为呈现标准输入(stdin)和标准输出(stdout)。
Win32工程:初始代码模版实现一个简单的windows窗口,以WinMain作为程序入口,引用了win32Api头文件和库,链接器
subsystem参数为windows,所以生成的程序不带黑色的控制台,直接使用标准输入和标准输出,看不到效果。
所以每次在新建项目时一定要先搞清楚目的再去新建项目。