-->

Cannot open include file “d3dx9.h”

2019-01-23 03:35发布

问题:

Edit: Of course, immediately after working on it for an hour then posting here, I found the stupid mistake...

I'm getting compiler errors when trying to #include <d3dx9.h> in a project. I'm receiving "fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory".

  • I do have the DirectX SDK installed (I also just tried reinstalling it to no avail).
  • In the Project Properties:
    • VC++ Directories are set to "$(DXSDK_DIR)Include;$(IncludePath)" and "$(DXSDK_DIR)Lib\x86;$(LibraryPath)" for Include and Library directories respectively for all configurations—and the environment variable %DXSDK_DIR% points to C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ as expected.
    • C/C++ > General settings has $(DXSDK_DIR)include listed in the Additional Include Directories
    • Linker > Input > Additional Dependencies has d3dx9d.lib included for Debug and d3dx9.lib included for Release configuration.
  • I am able to successfully compile and run tutorial projects from the DirectX Sample Browser.
  • Visual Studio's Intellisense/autocomplete will find d3dx9.h and suggest type and function names that are within the file (and not included through anything else I'm #includeing) so it seems that Intellisense can find it.

Any suggestions on what I'm forgetting or what else to try?

Thanks

回答1:

you forgot one thing:

  1. Go to VC++ Directories -> Library Directories
  2. add $(DXSDK_DIR)LIB\x86
  3. apply.

Done. Hope this helps



回答2:

You should make sure you have ALL paths sorounded by quotes ("). Instead of $(DXSDK_DIR)include you should have "$(DXSDK_DIR)include"



回答3:

I didn't realize that one of the other projects in the solution was #includeing a file that was #includeing a file that was #includeing d3dx9.h and I hadn't added those paths to that project.

/facepalm



回答4:

I tried all of these suggestions and none worked.

Turns out the $(DXSDK_DIR) variable doesn't work if you install DirectX while Visual Studio is still running. The solution for me was to restart Visual Studio (+ adding the paths in the solutions listed above, of course).