0

在我迁移到 Visual Studio 2012 之前,我有一个运行良好的 Visual C++ 项目。

我正在使用 D3DX9,因此,我是#include d3dx9.h。但是,在我包含包含 d3dx9.h 的文件的任何地方,我都会收到致命错误 C1083

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

所以我将包含目录设置更改为

$(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"

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

4

1 回答 1

0

如果您仍然遇到问题,我已经找到了解决方案。如果您使用的是内置的“工具包”,那么您需要在相关标题中使用如下指令:

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

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

于 2013-11-18T18:38:52.730 回答