2011-10-27 2 views
18

J'ai donc réinstallé directx11 plusieurs fois et je suis même allé sur le site Web de Microsoft pour obtenir le pack SDK contenant tous les fichiers x du direct. Quelqu'un at-il une idée pourquoi je continue d'obtenir cette erreur alors? Je sais pourquoi c'est dit mais plus à la recherche de la solution.d3dx11.h manquant?

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

+1

Avez-vous ajouté le dossier nécessaire dans vos répertoires d'inclusion? – FailedDev

Répondre

28

C'est ce que vous devez faire dans VS 2010 (il semble un peu différent dans VS 2008 et plus tôt):

Aller aux propriétés de votre projet | Propriétés de configuration | VC++ Répertoires. Modifier la ligne appelée Inclure les répertoires en ajoutant le chemin d'accès aux fichiers d'en-tête DirectX. En ce qui concerne Juin 2010 SDK, il peut être quelque chose comme:

32 bits Win: C: \ Program Files \ Microsoft DirectX SDK (Juin 2010) \ Inclure

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

Ensuite, vous êtes le plus susceptible d'obtenir une erreur de l'éditeur de liens (fichiers .lib manquants). Il suffit d'aller aux propriétés de votre projet | Propriétés de configuration | Directories VC à nouveau, mais cette édition temps répertoires de bibliothèques et ajouter à l'un des chemins suivants:

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

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

Si vous avez installé une autre version de SDK ou si vous l'avez installé dans un répertoire autre que celui par défaut, modifiez les chemins indiqués 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 <> fichiers, votre EDI doit savoir où les trouver. VC++ Directories est un moyen de le faire dans Visual Studio. Mais la seule inclusion des en-têtes est (dans la plupart des cas) insuffisante - vous devez indiquer à votre éditeur de liens où chercher les binaires précompilés décrits par ces en-têtes. Ce que vous faites en ajoutant le deuxième chemin d'accès aux répertoires de la bibliothèque.

+0

D'accord, je vais essayer. Je pensais que je l'avais fait parce que c'est ce que les instructions d'assignation me disaient de faire mais je vais tout vérifier. –

+0

Merci pour l'aide, il me manquait les répertoires VC++ et les bibliothèques de liens pour Direct X11. –

+3

Qu'en est-il de l'utilisation de la variable d'environnement% DXSDK_DIR%/Include? – qdii

0

Vous devez vous assurer d'obtenir la dernière DirectX SDK. Il a les fichiers d'en-tête. Si tout ce que vous avez eu était des fichiers CAB, vous avez le mauvais SDK.

+0

J'ai téléchargé cela et il me dit encore qu'il est incapable de le trouver? Si je commente la ligne demandant l'accès au fichier cela fonctionne mais cela me fait également commenter le fichier d3dx10.h et ça se charge bien. –

+0

Pouvez-vous chercher dans votre système d3dx * .h pour voir où les fichiers d'en-tête corrects ont été installés? –

+0

Il n'est pas apparu même après avoir été réinstallé 4 fois. –

0

Dans mon cas, pour DX12, je manquais d3dx12.h

Voir this MSDN page.

Dans le cas où la page se déplace, la ligne concernée semble être

"d3dx12.h est disponible séparément des Direct3D 12 têtes. Vous pouvez télécharger d3dx12.h en naviguant dans l'un des fichiers source pour les projets Direct3D 12 à GitHub/Microsoft/DirectX-Graphics-Samples "

+4

Le SDK DirectX est hérité et D3DX9, D3DX10 et D3DX11 sont obsolètes. Pour une liste des remplacements, voir [Vivre sans D3DX] (https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/). D3DX12 ne fait pas partie du Kit de développement Windows ou du SDK DirectX. Il est destiné à être simplement copié dans votre projet, il est fourni sur [GitHub] (https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/Templates/DirectX12App/Common/d3dx12.h) sous la Licence MIT. Il est également inclus dans divers modèles DirectX 12 VS, y compris [ces] (https://github.com/walbourn/directx-vs-templates/wiki). –