22

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

chaosTechnician
  • 1,640
  • 4
  • 18
  • 31

5 Answers5

17

you forgot one thing:

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

Done. Hope this helps

Mat
  • 202,337
  • 40
  • 393
  • 406
dellos
  • 327
  • 5
  • 15
8

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

Liviu Mandras
  • 6,540
  • 2
  • 41
  • 65
5

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

chaosTechnician
  • 1,640
  • 4
  • 18
  • 31
4

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.

Zsolt
  • 582
  • 2
  • 5
  • That actually solved the problem for me, but I find it really obscure. Why is it not sufficient to have the directory listed in "VC++ Directories -> Include Directories"? Can you elaborate on the differences between that and the setting you mentioned? – Henrik Heimbuerger Oct 08 '16 at 23:55
1

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