2011-10-27 11 views
18

Quindi ho reinstallato directx11 un paio di volte e sono persino andato al sito Web di Microsoft e ho ottenuto il pacchetto SDK che contiene tutti i file x diretti del cabinet. Qualcuno ha idea del perché continuo a ricevere questo errore? So perché lo sta dicendo, ma più alla ricerca della soluzione.d3dx11.h mancante?

1> c: \ users \ Vaughn \ ​​Documenti \ Visual Studio 2010 \ progetti \ myfirstapp \ myfirstapp \ main.cpp (5): l'errore irreversibile C1083: Impossibile aprire il file comprendono: 'd3dx11.h' : Nessun file o directory

+1

ti è aggiungere la cartella necessario nella tua includere le directory? – FailedDev

risposta

28

Questo è quello che devi fare in VS 2010 (sembra un po 'diversa in VS 2008 e precedenti):

Vai alle proprietà del vostro progetto | Proprietà di configurazione | Directory VC++. Modifica riga chiamata Includi directory aggiungendo il percorso ai file di intestazione di DirectX. Per quanto riguarda il giugno 2010 SDK può essere qualcosa di simile:

32 bit Win: C: \ Program Files \ Microsoft DirectX SDK (giugno 2010) \ Include

64 bit Win: C: \ Program Files (x86) \ Microsoft DirectX SDK (giugno 2010) \ Include

successivo si hanno più probabilità di ottenere un errore del linker (file mancanti lib). Basta andare alle proprietà del tuo progetto | Proprietà di configurazione | Directory di VC++ di nuovo, ma questa volta le directory di modifica Biblioteca e aggiungere uno dei seguenti percorsi:

32 bit Win: C: \ Program Files \ Microsoft DirectX SDK (giugno 2010) \ lib \ x86

64 bit Win: C: \ Programmi (x86) \ Microsoft DirectX SDK (giugno 2010) \ Lib \ x64

Se è stata installata un'altra versione di SDK o installata a percorsi di modifica di directory non predefiniti di conseguenza. Assicurati inoltre di aver aggiunto d3d11.lib (e forse d3dx11.lib) anche a Linker | Dipendenze aggiuntive.

regola generale è che ogni volta che si #include <> file vostro IDE ha bisogno di sapere dove trovarli. Le directory VC++ sono un modo per farlo in Visual Studio. Ma unica inserimento di intestazioni è (nella maggior parte dei casi) non è sufficiente - è necessario informare il linker dove cercare i binari precompilati descritti da queste intestazioni. Questo è ciò che si fa aggiungendo il secondo percorso alle directory della libreria.

+0

Ok, ho intenzione di provare. Pensavo di averlo fatto perché è quello che mi hanno detto di fare le istruzioni sui compiti, ma controllerò di nuovo tutto. –

+0

Grazie per l'aiuto, mi sono perso le directory VC++ e le librerie linker per Direct X11. –

+3

E riguardo all'utilizzo della variabile d'ambiente% DXSDK_DIR%/Include? – qdii

0

È necessario assicurarsi di ottenere l'ultimo DirectX SDK. Ha i file di intestazione. Se tutto quello che hai ottenuto erano file CAB, hai l'SDK sbagliato.

+0

L'ho scaricato e mi dice ancora che non è in grado di trovarlo? Se io commento la linea che richiede l'accesso al file funziona, ma poi mi fa anche commentare le file di d3dx10.h come bene e lo carica bene. –

+0

È possibile cercare nel sistema per d3dx * .h per vedere dove sono stati installati i file di intestazione corretti? –

+0

Non è comparso neanche dopo aver reinstallato 4 volte. –

0

Nel mio caso, per DX12, mi mancava d3dx12.h

Vedere this MSDN pagina.

Nel caso in cui la pagina si sposta, la linea in questione sembra essere

"d3dx12.h è disponibile separatamente dalle Direct3D 12 intestazioni. È possibile scaricare d3dx12.h navigando in uno dei file di origine per le Direct3D 12 progetti a GitHub/Microsoft/DirectX-Graphics-Samples "

+4

DirectX SDK è legacy e D3DX9, D3DX10 e D3DX11 sono obsoleti. Per un elenco di sostituzioni, consultare [Vivere senza D3DX] (https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/). D3DX12 non fa parte di Windows SDK o DirectX SDK. È destinato a essere copiato nel tuo progetto, è fornito su [GitHub] (https://github.com/Microsoft/DirectX-Graphics-Samples/blob/master/Templates/DirectX12App/Common/d3dx12.h) sotto Licenza MIT. È anche incluso in vari modelli di DirectX 12 VS che includono [questi] (https://github.com/walbourn/directx-vs-templates/wiki). –