目录
前言:我用的环境是 VS 2022
1、问题
在学习龙书第四章“Direct3D的初始化内容”时,遇到:
错误 LNK2019 无法解析的外部符号 _WinMain@16,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号
在网上找了很多方法(修改C++预处理器_WINDOWS等)都不管用,后来发现自己创建Windows桌面向导、桌面应用程序时,这些设置已经是正确的了。
2、原因
问题的原因就在我只添加了Common文件夹中的基础文件,此时程序没有WinMain入口
3、解决方法
方法很简单,只要在项目中添加第四章中的这个cpp文件即可
下面我还是从头开始一步步地写完整的运行教程。
4、完整教程
1、创建新项目
选择 Windows 桌面向导 ,点击下一步
给项目取个名称,点击创建
!这里要选择 桌面应用程序 ,并勾选 空项目 ,点击确定
2、添加现有项
右键新键的项目,选择 添加 → 现有项
打开Common文件夹(在龙书配套资料→本书配套源代码里有),Ctrl+A 全选文件,点击 添加
将第四章中 Init Direct3D 文件夹下的 InitDirect3DApp.cpp 文件复制粘贴到自己创建的项目文件夹下
在项目中添加这个cpp文件(还是上面的 添加 → 现有项 操作)
3、运行调试
由于我用的 VS 是2022版的,运行后会出现 “&”要求左值 的报错
解决方法:
右键当前项目,点击 属性 (菜单顶部的 项目-属性 可能不会成功)
把 配置属性→C/C++→语言→符合模式 选项改为 否,点击应用和确认
最后再次运行,没有报错,成功啦^ ^