移至VS2012后,d3dx9.h发生致命错误C1083

时间:2013-11-13 09:16:09

标签: c++ visual-studio-2012

我有一个完美的Visual C ++项目,直到我转到Visual Studio 2012.

我正在使用D3DX9,因此,我是#include d3dx9.h。但是,我到处都是fatal error C1083我包含的文件包括d3dx9.h

当我在this page中读到时,DirectX SDK现在是Windows SDK的一部分。这似乎得到以下事实的支持:当我导航到文件时,我没有收到错误,例如d3d9.h,我被发送到名为“Windows Kits”的文件夹内的某个文件夹而不是DirectX SDK文件夹。

所以我将include目录设置更改为

$(IncludePath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;$(IncludePath)

但编译器坚持忽略DirectX SDK文件夹,因为我仍然收到C1083错误。

我不知道还有什么可以尝试的。文件在那里,项目在VS2010上构建得很好,但VS2012编译器的这种坚持不让我前进。

我以前也能够在构建窗口中看到发送给编译器的确切命令行,但现在我不能,所以我不知道如何诊断Visual Studio是否没有发送正确的命令行编译器,或者编译器只是忽略它。

如何解决此问题?

注意:文件确实存在,如果我将#include更改为

,项目就能正常工作
#include "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\d3dx9.h"

这显然不是最佳的......

1 个答案:

答案 0 :(得分:0)

如果您仍然遇到问题,我已经找到了解决方案。如果您使用内置的“套件”,那么您需要在相关标头中使用这些指令:

#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "dxguid.lib")
#pragma comment(lib, "DXGI.lib")

根据您使用的功能,您可能还需要其他功能。