Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot open include file "d3dx9.h"

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

like image 958
chaosTechnician Avatar asked Feb 08 '11 08:02

chaosTechnician


5 Answers

you forgot one thing:

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

Done. Hope this helps

like image 173
dellos Avatar answered Nov 13 '22 01:11

dellos


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

like image 34
Liviu Mandras Avatar answered Nov 13 '22 00:11

Liviu Mandras


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

like image 6
chaosTechnician Avatar answered Nov 13 '22 02:11

chaosTechnician


Find the file on your computer, and add it's folder to the properties of your project.

Assuming you have visual studio: Properties/C/C++/General/Additional Include Libraries.

like image 4
Zsolt Avatar answered Nov 13 '22 02:11

Zsolt


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).

like image 1
Niclas Lindstedt Avatar answered Nov 13 '22 02:11

Niclas Lindstedt