我已经开始使用DirectX 11并遇到以下编译错误:
错误1错误LNK2019:函数_ _tmainCRTStartup中引用了无法解析的外部符号wWinMain @ 16
错误2错误LNK1120:1个未解决的外部组件(我认为此错误是由于该错误上方的错误引起的)
我已经搜索了很长时间的针对此问题的修复程序,但是在此网站或任何其他通过google的网站上都找不到针对此问题的修复程序。
我为此项目使用Visual Studio 2012和c ++。为了创建测试项目,我通过“新建项目”->“ Visual C ++”->“空项目”创建了一个空项目。我正在为此项目使用标准编译器。
这是我的main.cpp文件中的wWinMain标头:
int wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow)
IntelliSense还在文件开头的某些包含行中不断抛出“ 4 IntelliSense:'#'nothere 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
或WINAPI
在函数名称中均不起作用,看来。至少,以我使用它们的方式,请告诉我这是否不正确。
对不起,看来我在这里犯了错误,在属性->配置属性->常规->字符集下,我没有使用Unicode开始。看来,从一开始就使用多字节字符集,这使Visual Studio 2012感到困惑,以为我改用了多字节字符集。即使将“属性”->“链接器”->“高级”下的入口点设置为wWinMainCRTStartup,也会导致该错误。很有道理,因为无法正确识别字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句