2010-04-13 15 views
7

Ho guardato al post precedente in base a questo, ma non si riferiscono. Sto ricevendo il seguente errore.errore fatale C1083: impossibile aprire include file

1>c:\users\numerical25\desktop\intro todirectx\introtodirectx\chapter 4\init direct3d\init direct3d.cpp(9) : fatal error C1083: Cannot open include file: 'd3dApp.h': No such file or directory 

Ma è chiaro dall'immagine del prodotto al di sotto, relativo là

alt text

In oppongono ad altre persone che stanno avendo problemi a trovare l'intestazione sul disco fisico. il compilatore non riesce a trovare la mia intestazione dall'interno di Solution Explorer.

risposta

14

Quello che si vede nel riquadro sinistro dell'IDE non ha assolutamente nulla a che fare con il fatto che il file ci sia o meno. "Solution Explorer" non esplora i file effettivi presenti nel file system, mostra semplicemente quali file sono registrati come parti di questa soluzione.

Affinché il codice per la compilazione, il file deve essere presente nel file system del computer in uno dei percorsi che il specificati come percorsi di ricerca per i file di intestazione di questa soluzione. Non è presente, quindi l'errore.

+0

ok, quello che hai detto ha molto senso ma sono solo un po 'confuso su cosa fare dopo. Devo creare una cartella denominata Intestazioni e inserire fisicamente il file di intestazione. Quindi aggiungilo alle directory di inclusione ?? Ho sempre pensato che tutti i file di Solution Explorer fossero file fisici incorporati nel progetto. – numerical25

+0

Ok, ho aggiunto le intestazioni alla cartella principale in cui sono presenti i miei file .sln e ora possono essere trovati. – numerical25

0

La vista della soluzione e la vista del file a volte non hanno alcuna relazione; ogni file che aggiungi alla vista della soluzione è una voce in un file xml. La direttiva #include di solito esamina la posizione dell'unità fisica, dopo aver esaminato i percorsi di inclusione.

Il mio suggerimento è di aggiungere il percorso di inclusione direct3d.h alle impostazioni del progetto. Questo è il metodo consigliato in quanto rende l'aggiornamento alle versioni più recenti dell'SDK indolore (ed è una buona pratica per qualsiasi libreria esterna).

+0

ok, ma sto riscontrando problemi con d3dApp.h. che è un'intestazione personalizzata che inserisco nella cartella delle intestazioni. VS ha creato automaticamente questa cartella di intestazione per me. quindi perché ha difficoltà a trovare i file header che ho inserito. – numerical25

5

Assicurarsi che la directory in cui si trova l'intestazione sia inclusa nelle impostazioni del progetto (C/C++ → Generale → Directory di inclusione aggiuntive).

+0

l'intestazione si trova nella cartella Header all'interno di Solution Explorer. Non esiste una cartella di intestazione posizionata vicino al file .sln sull'unità fisica. Quando vado a include include, mi consente solo di cercare le cartelle sul disco fisico. La cartella Header nella foto sopra può essere trovata solo in .sln – numerical25

+0

Worked for me! Grazie. –