Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法打开源文件d3dx9.h_C++_Sdk_D3dx - Fatal编程技术网

C++ 无法打开源文件d3dx9.h

C++ 无法打开源文件d3dx9.h,c++,sdk,d3dx,C++,Sdk,D3dx,在我开始之前,我知道这是一个很常见的问题,我在这里发布之前搜索过答案。不幸的是,我没有运气 在我的代码中,我包含如下文件: #include <d3dx9.h> 现在出现错误:无法打开源文件d3dx9.h 在我的Include目录中,我确实输入了它所在的路径。如果我通过我的文件手动查找它,我可以在那里看到它 路径为:C:\Program Files x86\Microsoft DirectX SDK 2010年6月\Include 我还设置了库目录:C:\Program Files

在我开始之前,我知道这是一个很常见的问题,我在这里发布之前搜索过答案。不幸的是,我没有运气

在我的代码中,我包含如下文件:

#include <d3dx9.h>
现在出现错误:无法打开源文件d3dx9.h

在我的Include目录中,我确实输入了它所在的路径。如果我通过我的文件手动查找它,我可以在那里看到它

路径为:C:\Program Files x86\Microsoft DirectX SDK 2010年6月\Include

我还设置了库目录:C:\Program Files x86\Microsoft DirectX SDK June 2010\Lib\x64

x64,因为我运行的是64位系统

如果有人能抽出时间提出建议,我将不胜感激


问候。

Visual Studio 2015包含Windows 8.1 SDK,该SDK比旧版DirectX SDK中的标头更新。Windows 8.1 SDK包含所有DirectX标头和库,但不包含现在已弃用的D3DX D3DX9、D3DX10、D3DX11实用程序库,这就是它缺失的原因

D3DX9、D3DX10和D3DX11仅在传统DirectX SDK中可用。在VS 2010中,Win32 x86设置应使用的VC++目录设置如下:

<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或更高版本,您必须将其反转,因为Windows 8 SDK中的大多数标头都会替换旧的DirectX SDK:

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

见、和

综上所述,无论如何,您可能不应该使用遗留的Direct3D 9。将DirectX 11与D3DX的现代替代品一起使用是一个更好、更干净的选项,并且不需要传统的DirectX SDK。看


如果您的目标是使用Direct3D 9在Windows XP SP3上运行程序,那么您将使用v140_XP平台工具集,该工具集使用Windows 7.1A SDK,而不是Windows 8.1 SDK。因此,你要按照旧的学校包括秩序。有关详细信息,请参阅。

Visual Studio 2015包含Windows 8.1 SDK,该SDK比旧版DirectX SDK中的标头更新。Windows 8.1 SDK包含所有DirectX标头和库,但不包含现在已弃用的D3DX D3DX9、D3DX10、D3DX11实用程序库,这就是它缺失的原因

D3DX9、D3DX10和D3DX11仅在传统DirectX SDK中可用。在VS 2010中,Win32 x86设置应使用的VC++目录设置如下:

<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或更高版本,您必须将其反转,因为Windows 8 SDK中的大多数标头都会替换旧的DirectX SDK:

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

见、和

综上所述,无论如何,您可能不应该使用遗留的Direct3D 9。将DirectX 11与D3DX的现代替代品一起使用是一个更好、更干净的选项,并且不需要传统的DirectX SDK。看


如果您的目标是使用Direct3D 9在Windows XP SP3上运行程序,那么您将使用v140_XP平台工具集,该工具集使用Windows 7.1A SDK,而不是Windows 8.1 SDK。因此,你要按照旧的学校包括秩序。有关详细信息,请参阅。

您检查过文件“d3dx9.h”是否确实位于包含路径中吗?我检查过了,就我所见。它确实存在。您使用的是什么Visual Studio版本?您检查过DirectX SDK是否包含C++项目中正确的路径?参见Project属性?我使用微软Visual Studio社区2015,您正确地选择了什么意思?我怎么能检查这个?你在我的Include目录中到底在哪里添加了d3d SDK路径?你检查过文件“d3dx9.h”确实在Include路径中了吗?我有,就我所见。它确实存在。您使用的是什么Visual Studio版本?您检查过DirectX SDK是否包含C++项目中正确的路径?参见Project属性?我使用微软Visual Studio社区2015,您正确地选择了什么意思?我怎么能检查这个?你到底在我的Include目录中的哪里添加了D3DSDK路径?