web-dev-qa-db-fra.com

Impossible d'ouvrir le fichier d'inclusion "d3dx9.h"

Edit: Bien sûr, immédiatement après avoir travaillé dessus pendant une heure puis posté ici, j'ai trouvé l'erreur stupide ...

Je reçois des erreurs de compilation lorsque j'essaie de #include <d3dx9.h> Dans un projet. Je reçois "erreur fatale C1083: impossible d'ouvrir le fichier inclus:" d3dx9.h ": aucun fichier ou répertoire".

  • J'ai le SDK DirectX installé (j'ai aussi juste essayé de le réinstaller en vain).
  • Dans les propriétés du projet:
    • Les répertoires VC++ sont définis sur "$(DXSDK_DIR)Include;$(IncludePath)" et "$(DXSDK_DIR)Lib\x86;$(LibraryPath)" pour les répertoires Include et Library respectivement pour toutes les configurations - et la variable d'environnement %DXSDK_DIR% Pointe sur C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ comme prévu.
    • C/C++> Paramètres généraux a $(DXSDK_DIR)include répertoriée dans les répertoires d'inclusion supplémentaires
    • Linker> Input> Additional Dependencies a d3dx9d.lib Inclus pour le débogage et d3dx9.lib Inclus pour la configuration de la version.
  • Je suis capable de compiler et d'exécuter avec succès des projets de didacticiel à partir du navigateur d'échantillons DirectX.
  • Intellisense/autocomplete de Visual Studio trouvera d3dx9.h Et suggérera des noms de type et de fonction qui se trouvent dans le fichier (et qui ne sont pas inclus dans tout ce que je suis #include Ing) il semble donc qu'Intellisense puisse le trouver .

Des suggestions sur ce que j'oublie ou quoi essayer?

Merci

19
chaosTechnician

Je ne savais pas que l'un des autres projets de la solution était #includeun fichier qui était #includeun fichier qui était #includeing d3dx9.h et je n'avais pas ajouté ces chemins à ce projet.

/ facepalm

6
chaosTechnician

tu as oublié une chose:

  1. Accédez aux répertoires VC++ -> Répertoires de bibliothèque
  2. ajouter $(DXSDK_DIR)LIB\x86
  3. appliquer.

Terminé. J'espère que cela t'aides

13
dellos

Vous devez vous assurer d'avoir TOUS LES chemins entourés de guillemets ("). Au lieu de $(DXSDK_DIR)include vous devriez avoir "$(DXSDK_DIR)include"

7
Liviu M.

J'ai essayé toutes ces suggestions et aucune n'a fonctionné.

Il s'avère que la variable $ (DXSDK_DIR) ne fonctionne pas si vous installez DirectX alors que Visual Studio est toujours en cours d'exécution. La solution pour moi était de redémarrer Visual Studio (+ en ajoutant les chemins dans les solutions listées ci-dessus, bien sûr).

0
Niclas Lindstedt