首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法打开源文件d3dx9.h

无法打开源文件d3dx9.h
EN

Stack Overflow用户
提问于 2017-01-13 17:44:12
回答 1查看 16.1K关注 0票数 1

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

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

代码语言:javascript
复制
#include <d3dx9.h>

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

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

路径为:C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include

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

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

如果有人能花时间发表一个建议,我将不胜感激。

欢迎光临。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-14 08:42:54

Visual Studio2015包括Windows8.1SDK,它比遗留的DirectX SDK中的头文件更新。Windows8.1SDK包含了所有的DirectX头文件和库,但没有包含现已废弃的D3DX (D3DX9,D3DX10,D3DX11)实用程序库,这就是它“缺失”的原因。

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

代码语言:javascript
复制
<ExecutablePath>$(DXSDK_DIR)Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(DXSDK_DIR)Include;$(IncludePath)</IncludePath>
<LibraryPath>$(DXSDK_DIR)Lib\x86;$(LibraryPath)</LibraryPath>

这是针对x64原生的:

代码语言:javascript
复制
<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>

在VS2012或更高版本中,你必须反转它们,因为Windows8SDK中的大多数头文件都替换了旧的DirectX SDK:

代码语言:javascript
复制
<ExecutablePath>$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x86</ExecutablePath>
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x86</LibraryPath>

代码语言:javascript
复制
<ExecutablePath>$(ExecutablePath);$(DXSDK_DIR)Utilities\bin\x64;$(DXSDK_DIR)Utilities\bin\x86</ExecutablePath>
<IncludePath>$(IncludePath);$(DXSDK_DIR)Include</IncludePath>
<LibraryPath>$(LibraryPath);$(DXSDK_DIR)Lib\x64;</LibraryPath>

请参见MSDNWhere is the DirectX SDK (2015 Edition)?The Zombie DirectX SDKNot So Direct Setup

说了这么多,你可能无论如何都不应该使用传统的Direct3D 9。将DirectX 11与D3DX的现代替代品之一一起使用是一个更好、更干净的选择,并且不需要遗留的DirectX SDK。参见Living without D3DX

如果您的目标是在装有Windows9的Windows XP SP3上运行程序,那么您将使用v140_xp平台工具集,它使用的是Windows7.1SDK,而不是Windows8.1SDK。因此,您使用的是老式的包含顺序。详情请参见this post

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41631576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档