2014-01-20 81 views
0

我已经开始与DirectX 11以及获得这些编译错误:错误LNK2019:_wWinMain @函数___tmainCRTStartup引用16解析外部符号

错误1个错误LNK2019:解析外部符号wWinMain @函数引用16 _ _tmainCRTStartup

错误2错误LNK1120:1层无法解析的外部(我估计,这个错误是因为错误略高于此一)

找遍周围修复这个问题相当长一段时间,但我无法找到任何修复这个专业人士在这个网站或任何其他网站通过谷歌blem。

我在这个项目中使用了Visual Studio 2012和C++。为了使我的测试项目,我通过新建项目 - > Visual C++ - >空项目创建一个空项目。 我正在使用该项目的标准编译器。

这是我的main.cpp文件我wWinMain头:

int wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
 LPWSTR cmdLine, int cmdShow)

智能感知也不断抛出了“4智能感知:‘#’这里没有预期”的一些包括开始行错误该文件,这些行:(编辑:错误不断消失和重新出现,反复)

#include <Windows.h> 
#include <memory> 
#include "BlankDemo.h" 
#include <tchar.h> 

我把我的职位,我认为这可能被实现,或有什么做的错误,它可能只是包含文件。 BlankDemo.h是测试演示的头文件,只是产生一个空白的DirectX 11窗口。

我用过的所有代码都来自一本关于DirectX的书;因为我还不习惯使用DirectX,所以我尝试了一些修复程序,但似乎没有人能够摆脱此错误,修复程序如下:

转至属性 - >配置属性 - >常规 - >字符集并更改即“使用Unicode字符集”。

更改字符集后,错误仍然存​​在。

去属性 - >连接器 - >系统并将子系统更改为Windows(/ SUBSYSTEM:WINDOWS)。

我也尝试将其更改为控制台(/ SUBSYSTEM:CONSOLE),这些更改似乎都无法解决问题。

我也去了Properties-> Linker-> Command Line并添加了/ ENTRY:“wWinMainCRTStartup”到“Additional Options”,这并没有解决问题。

我仍然对项目进行了如上所述的项目更改。我只写了几行代码,因为这些错误似乎与我在本文中提供的代码有关,当我复制并粘贴代码时,它似乎没有正确格式化,但请告诉我您是否需要去看更多的代码。

编辑:我已经改变了功能int WINAPI __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
 LPWSTR cmdLine, int cmdShow) 即使使用__stdcallWINAPI函数名不起作用看来。至少,以我用过的方式,请告诉我这是不正确的。

+0

符号'winMain'通常是控制台与项目窗口配置的症状。另外,'w'前缀通常表示字符编码配置问题:'w'表示宽字符集。 –

+0

感谢您的提示,是的,有意义的是'w'表示宽字符集,但这并不能帮助我解决问题。 – JamesMoran

+0

您的代码中出现了一些unicode符号U + 2028,这就是为什么它不能正确格式化。这是打算? (我不知道这是否与错误有关,其他人可能会澄清这一点。)其中一些在include行的'#'前面。所以这可能会解释错误信息? ('#'应该始终是该行的第一个字符。) – Nabla

回答

1

对不起,我在这里犯了错误,如在;在属性 - >配置属性 - >常规 - >字符集下,我没有使用Unicode开始。似乎通过使用多字节字符集开始,这个混淆的Visual Studio 2012认为我正在使用多字节字符集。这导致它抛出错误,即使Properties-> Linker-> Advanced下的入口点被设置为wWinMainCRTStartup。有道理,因为角色没有被正确识别。

+0

此外,我必须等待7小时才能接受此答案,请告诉我,如果您在此期间还有其他答案。 – JamesMoran

+0

我只是重复了几次这个项目,直到我终于开始工作。 – JamesMoran

相关问题