如何让Visual c++打开d3dx.h

问题描述 投票:0回答:1

最近我拿起一本关于使用 Visual C++ 进行游戏编程的书。它使用 DirectX 库,并表示我只需将 #include 和 #pragma comment(lib, "d3dx9.lib") 写入代码中。但是该程序报告无法找到 d3dx.h。我该如何解决这个问题。

我尝试在项目属性-配置属性-链接器-输入-附加依赖项中添加文件,但仍然找不到该文件。如果这有什么改变的话,我正在使用 Visual Studio 2010。

我报告致命错误 C1083:无法打开包含文件:'d3dx.h':没有这样的文件或目录。

directx visual-c++-2010 d3dx
1个回答
1
投票

您应该阅读此博文Microsoft Docs

TL;DR: Direct3D 9 是旧版,D3DX 已弃用,DirectX SDK(2010 年 6 月)是生命周期结束版本。您仍然可以使用它,但此时您最好学习 DirectX 11。

否则,请从 Microsoft 下载 安装旧版 DirectX SDK(2010 年 6 月)。请注意,使用 VS 2010,您必须手动更新 VC++ 目录才能引用 DirectX SDK。

x86:

<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>

x64:

<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x64;$(LibraryPath)</LibraryPath>

使用 VS 2012 或更高版本,您必须颠倒这些路径顺序(即将 DXSDK_DIR 路径放在现有路径之后),如本页底部所述。

您还应该注意这个“已知问题”,它可能会导致安装旧版 DirectX SDK 时出现问题。

更新:

如今最好的解决方案是完全避免使用旧版 DirectX SDK。如果您需要 D3DX9/D3DX10/D3DX11,请使用 NuGet Package。请参阅此博文了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.