【问题标题】:Cannot open include file "d3dx9.h"无法打开包含文件“d3dx9.h”
【发布时间】:2014-08-14 10:34:35
【问题描述】:

编辑:当然,在工作了一个小时然后在这里发布之后,我立即发现了愚蠢的错误......

我在项目中尝试#include <d3dx9.h> 时遇到编译器错误。我收到“致命错误 C1083:无法打开包含文件:'d3dx9.h':没有这样的文件或目录”。

  • 我确实安装了 DirectX SDK(我也只是尝试重新安装它,但无济于事)。
  • 在项目属性中:
    • 对于所有配置,VC++ 目录分别设置为“$(DXSDK_DIR)Include;$(IncludePath)”和“$(DXSDK_DIR)Lib\x86;$(LibraryPath)”,环境变量%DXSDK_DIR% 指向C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\,正如预期的那样。
    • C/C++ > 常规设置有 $(DXSDK_DIR)include 在附加包含目录中列出
    • Linker > Input > Additional Dependencies 包含用于调试的d3dx9d.lib 和用于发布配置的d3dx9.lib
  • 能够从 DirectX 示例浏览器成功编译和运行教程项目。
  • Visual Studio 的 Intellisense/autocomplete 会找到 d3dx9.h 并建议文件中的类型和函数名称(不包括在我 #includeing 的任何其他内容中),因此 Intellisense 似乎可以找到它。李>

对我忘记了什么或尝试什么有什么建议?

谢谢

【问题讨论】:

  • 添加您所做的答案,然后选择它。删除会否定 Liviu 为帮助您所做的努力。
  • 好的。我不确定回答我自己的问题是否是不好的形式。会的。

标签: visual-studio-2010 directx-9


【解决方案1】:

你忘了一件事:

  1. 转到 VC++ 目录 -> 库目录
  2. 添加$(DXSDK_DIR)LIB\x86
  3. 申请。

完成。希望这会有所帮助

【讨论】:

  • 我以为他提到他已经包含了库目录。
【解决方案2】:

您应该确保您有 ALL 用引号 (") 括起来的路径。 而不是$(DXSDK_DIR)include,你应该有"$(DXSDK_DIR)include"

【讨论】:

  • 我的理解是VS2010不需要在路径周围加上引号;但是,无论哪种方式,添加引号都不能解决问题。
【解决方案3】:

我没有意识到解决方案中的其他项目之一是 #includeing 一个文件是 #includeing 一个文件是 #includeing d3dx9.h 并且我没有将这些路径添加到那个项目。

/掌心

【讨论】:

    【解决方案4】:

    在您的计算机上找到该文件,并将其文件夹添加到您的项目的属性中。

    假设您有 Visual Studio:Properties/C/C++/General/Additional Include Libraries

    【讨论】:

    • 这实际上解决了我的问题,但我觉得它真的很模糊。为什么在“VC++ 目录 -> 包含目录”中列出目录是不够的?您能详细说明一下这与您提到的设置之间的区别吗?
    【解决方案5】:

    我尝试了所有这些建议,但都没有奏效。

    如果在 Visual Studio 仍在运行时安装 DirectX,$(DXSDK_DIR) 变量将不起作用。我的解决方案是重新启动 Visual Studio(当然,在上面列出的解决方案中添加路径)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2016-06-17
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多