web-dev-qa-db-fra.com

d3dx11.h manquant?

J'ai donc réinstallé directx11 à quelques reprises et je suis même allé sur le site Web de Microsoft pour obtenir le pack de SDK contenant tous les fichiers CAB directs. Quelqu'un a une idée pourquoi je continue à avoir cette erreur alors? Je sais pourquoi il le dit mais cherche plus la solution.

1> c:\utilisateurs\vaughn\​​documents\visual studio 2010\projects\myfirstapp\myfirstapp\main.cpp (5): erreur fatale C1083: Impossible d'ouvrir le fichier d'inclusion: 'd3dx11.h': Aucun fichier ou répertoire de ce type

19
Nicholas Vaughn

C'est ce que vous devez faire dans VS 2010 (c'est un peu différent dans VS 2008 et les versions antérieures):

Accédez aux propriétés de votre projet | Propriétés de configuration | Répertoires VC++. Modifiez la ligne appelée Inclure les répertoires en ajoutant un chemin aux fichiers d’en-tête DirectX. En ce qui concerne le SDK de juin 2010, cela peut ressembler à:

SDK 32 bits Win: C:\Program Files\Microsoft DirectX (juin 2010)\Include

Windows 64 bits: C:\Program Files (x86)\SDK DirectX de Microsoft (juin 2010)\Include

Ensuite, vous êtes le plus susceptible d'avoir l'erreur d'un éditeur de liens (fichiers .lib manquants). Il suffit d'aller dans les propriétés de votre projet | Propriétés de configuration | VC++ Directories à nouveau, mais cette fois-ci éditez les répertoires de bibliothèque et ajoutez-les à l'un des chemins suivants:

SDK 32 bits Win: C:\Program Files\Microsoft (juin 2010)\Lib\x86

Windows 64 bits: C:\Program Files (x86)\SDK DirectX de Microsoft (juin 2010)\Lib\x64

Si vous avez installé une autre version du SDK ou que vous l'avez installée dans un répertoire autre que celui par défaut, modifiez les chemins en conséquence. Assurez-vous également que vous avez ajouté d3d11.lib (et peut-être aussi d3dx11.lib) à Linker | Dépendances supplémentaires.

La règle générale est que chaque fois que vous #incluez <>, votre IDE a besoin de savoir où les trouver. Les répertoires VC++ constituent un moyen de le faire dans Visual Studio. Mais la seule inclusion d'en-têtes n'est (dans la plupart des cas) pas suffisante - vous devez indiquer à votre éditeur de liens où rechercher les fichiers binaires précompilés décrits par ces en-têtes. C’est ce que vous faites en ajoutant le deuxième chemin aux répertoires de la bibliothèque.

29
Presto The Coder

Vous devez vous assurer d’obtenir le dernier DirectX SDK . Il a les fichiers d'en-tête. Si tout ce que vous avez obtenu est un fichier CAB, vous avez un mauvais SDK.

0
Michael Price

Dans mon cas, pour DX12, il me manquait d3dx12.h

Voir ce MSDN page.

Si la page est déplacée, la ligne correspondante semble être 

"d3dx12.h est disponible séparément des en-têtes de Direct3D 12. Vous pouvez télécharger d3dx12.h en naviguant dans n’importe quel fichier source des projets Direct3D 12 à GitHub/Microsoft/DirectX-Graphics-Samples "

0
0909EM