我已经开始使用DirectX 11并获得这些编译错误:
错误1错误LNK2019:函数_ _tmainCRTStartup中引用的未解析的外部符号 wWinMain @ 16
错误2错误LNK1120:1个未解析的外部(我认为此错误是由于此错误之上的错误)
我已经搜索了这个问题很长一段时间了,但是我无法通过谷歌在这个网站或任何其他网站上找到这个问题的任何修复。
我在这个项目中使用Visual Studio 2012和c ++。为了完成我的测试项目,我通过New Project-> Visual C ++ - > Empty Project创建了一个空项目。 我正在为这个项目使用标准编译器。
这是我在main.cpp文件中的wWinMain标题:
int wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow)
IntelliSense还会在文件开头的某些包含行上不断抛出“4智能感知:'''''''''错误,这些行:(编辑:错误不断消失并重复出现)
#include <Windows.h>
#include <memory>
#include "BlankDemo.h"
#include <tchar.h>
我把它放在我的帖子中,因为我认为这可能会受到错误的影响,或者与错误有关,它可能只是包含文件。 BlankDemo.h是测试演示的头文件,它只生成一个空白的DirectX 11窗口。
我使用的所有代码都来自DirectX上的一本书;因为我还不习惯DirectX,我已经尝试了一些修复,似乎没有一个摆脱这个错误,修复是:
转到属性 - &gt;配置属性 - &gt;常规 - &gt;字符集并将其更改为“使用Unicode字符集”。
更改字符集后,错误仍然存在。
转到属性 - &gt;链接器 - &gt;系统并将子系统更改为Windows(/ SUBSYSTEM:WINDOWS)。
我也尝试将其更改为Console(/ SUBSYSTEM:CONSOLE),这些更改似乎都无法解决问题。
我还去了Properties-&gt; Linker-&gt;命令行并将/ ENTRY:“wWinMainCRTStartup”添加到“其他选项”,这也无法解决问题。
我仍然在项目中详细说明了对项目的更改。我只放了几行代码,因为错误似乎与我在这篇文章中提到的代码有关,当我复制并粘贴代码时,它似乎没有正确格式化,但请告诉我你是否需要看到更多代码。
编辑:我已将功能更改为int WINAPI __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
LPWSTR cmdLine, int cmdShow)
即使在函数名中使用__stdcall
或WINAPI
也行不通。至少,在我使用它们的方式中,请告诉我这是否不正确。
答案 0 :(得分:1)
对不起伙计们,我似乎在这里犯了错误,就像在;我没有使用Unicode开始,在Properties-&gt; Configuration Properties-&gt; General-&gt; Character Set下。似乎通过使用多字节字符集开始,这使得混淆的Visual Studio 2012认为我使用的是多字节字符集。这导致它抛出错误,即使Properties-&gt; Linker-&gt; Advanced下的入口点设置为wWinMainCRTStartup。有道理,因为人物没有被正确识别。