我开始使用 DirectX 11 并收到以下编译错误:
错误 1 错误 LNK2019:无法解析的外部符号函数 _ 中引用了 wWinMain@16_tmainCRT启动
错误 2 error LNK1120: 1 unresolved externals(我认为这个错误是由于上面这个错误造成的)
我已经搜索此问题的修复程序很长一段时间了,但我无法在此网站或通过谷歌的任何其他网站上找到此问题的任何修复程序。
我在这个项目中使用 Visual Studio 2012 和 c++。为了制作我的测试项目,我通过“新建项目”->“Visual C++”->“空项目”创建了一个空项目。
我在这个项目中使用标准编译器。
这是我的 main.cpp 文件中的 wWinMain 标头:
int wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow)
IntelliSense 还在文件开头的某些包含行上不断抛出“4 IntelliSense: '#' not Expected Here”错误,这些行:(编辑:错误不断消失并重复出现)
#include <Windows.h>
#include <memory>
#include "BlankDemo.h"
#include <tchar.h>
我把它放在我的帖子中,因为我认为这可能受到错误的影响,或者与错误有关,它可能只是包含文件。 BlankDemo.h 是仅生成空白 DirectX 11 窗口的测试演示的头文件。
我使用的所有代码都来自一本关于 DirectX 的书;由于我还不习惯 DirectX,我尝试了许多修复方法,但似乎都没有摆脱这个错误,修复方法是:
转到“属性”->“配置属性”->“常规”->“字符集”并将其更改为“使用 Unicode 字符集”。
更改字符集后,错误仍然存在。
转到“属性”->“链接器”->“系统”并将子系统更改为 Windows (/SUBSYSTEM:WINDOWS)。
我也尝试将其更改为控制台(/SUBSYSTEM:CONSOLE),这些更改似乎都无法解决问题。
我还转到“属性”->“链接器”->“命令行”并将 /ENTRY:"wWinMainCRTStartup" 添加到“其他选项”,这也不能解决问题。
我仍然对项目进行了更改,如上面项目中详细说明的那样。我只输入了几行代码,因为错误似乎与我在这篇文章中输入的代码有关,而且当我复制并粘贴代码时,它似乎格式不正确,但如果您需要,请告诉我查看更多代码。
编辑:我已将功能更改为int WINAPI __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow)
即使使用__stdcall
or WINAPI
在函数名称中似乎不起作用。至少,就我使用它们的方式而言,请告诉我这是否不正确。