Come funzionano i percorsi di inclusione in Visual Studio?

Visual Studio mi fa impazzire e sospetto che stia facendo qualcosa di sbagliato.

Questo è quello che faccio: ho installato Visual Studio (Pro ’08) molto tempo fa, ho installato Windows SDK (Win 7 x64), qualcuno mi ha inviato un progetto e non riesce a compilare.

Invariabilmente, non riesce a trovare windows.h. Mentre è abbastanza facile includere C:\Program Files\Microsoft SDKs\Windows\v7.0\Include nelle impostazioni di progetto di ogni singolo progetto, ritengo che questo potrebbe non essere il modo corretto di farlo. C’è un modo per rendere Visual Studio globalmente consapevole di questi file?
Ho anche provato ad includere la directory sopra nella variabile path ma questo non ha cambiato nulla.

Inoltre, troverà a caso windows.h ma non winresrc.h nella stessa directory.

Modificare:
Era un problema con la mia macchina. In qualche modo, Visual Studio pensava che il mio SDK di Windows fosse nel posto sbagliato. Vedi risposta accettata e commenti per la correzione.

Puoi impostare il percorso di inclusione globale di Visual Studio qui:

Tools / Options / Projects and Solutions / VC++ Directories / Include files

AGGIORNAMENTO (in Visual Studio 2015): inserisci la descrizione dell'immagine qui

La soluzione @RichieHindle è ora obsoleta a partire da Visual Studio 2012. Come il prompt di VS Studio ora afferma:

Le directory VC ++ sono ora disponibili come una finestra di proprietà utente che viene aggiunta per impostazione predefinita a tutti i progetti.

Per impostare un percorso di inclusione ora devi fare clic con il pulsante destro del mouse su un progetto e andare a:

 Properties/VC++ Directories/General/Include Directories 

Immagine dello schermo: inserisci la descrizione dell'immagine qui

Per riprendere le soluzioni di lavoro anche in VisualStudio 2013 e 2015:

Aggiungi un percorso di inclusione solo al progetto corrente

In Esplora soluzioni (una finestra della palette della finestra principale di VisualStudio), aprire il menu di scelta rapida per il progetto e scegliere Proprietà, quindi nel riquadro sinistro della finestra di dialogo Pagine delle proprietà espandere Proprietà di configurazione e selezionare Directory VC ++. Qui sono specificabili ulteriori percorsi include- o lib.

È ciò che StackOverflow e user1741137 dicono nelle risposte sopra. È ciò che Microsoft spiega anche in MSDN .

Aggiungi automaticamente un percorso di inclusione ad ogni nuovo progetto

E ‘la domanda, cosa chiede Jay Elston in un commento sopra e che cosa è una domanda molto ovvia e bruciante nei miei occhi, quello che sembra essere ancora senza risposta qui.

Esistono modi regolari per farlo in VisualStudio (vedi CurlyBrace.com ), ciò che nella mia esperienza non funziona correttamente. Nel senso, che funziona solo una volta, e da quel momento in poi, non è più espandibile e nomore rimovibile. L’approccio di Steve Wilkinson in un’altra stretta correlazione di StackOverflow, la modifica del file Microsoft-Factory-XML nella cartella ‘file di programma’ – è probabilmente un trucco rischioso, in quanto Microsoft non si aspetta di incontrare qualcosa di estraneo. L’effetto è potenzialmente imprevedibile. Beh, mi piace piuttosto giudicarlo rischioso non molto, ma comunque il modo migliore per rendere VisualStudio lavoro incomprensibile almeno per qualcun altro.

Ciò che funziona bene rispetto a, è la modifica del corrispondente file XML dell’utente:

C: \ Users \ nomeutente \ AppData \ Local \ Microsoft \ MSBuild \ v4.0 \ Microsoft.Cpp.Win32.user.props

o / e

C: \ Users \ nomeutente \ AppData \ Local \ Microsoft \ MSBuild \ v4.0 \ Microsoft.Cpp.x64.user.props

Per esempio:

       C:\any-name\include;$(IncludePath) C:\any-name\lib;$(LibraryPath)     

Dove la directory ‘C: \ any-name \ include’ verrà anteposta al presente include-path e alla directory ‘C: \ any-name \ lib’ al percorso della libreria. Qui, possiamo modificarlo in un senso di estensione e rimozione e rimuoverlo, rimuovendo il contenuto intero del tag.

È ciò che rende VisualStudio stesso, facendolo nel modo normale che descrive CurlyBrace . Come detto, non è modificabile nel modo CurlyBrace da allora in poi, ma nel modo di modifica XML lo è.

Per ulteriori approfondimenti, vedi Brian Tyler @ MSDN-Blog 2009, ciò che è certamente non molto fresco, ma sempre ciò a cui Microsoft sta collegando.

Per utilizzare correttamente Windows SDK è necessario non solo rendere i file inclusi disponibili per i progetti, ma anche file di libreria ed eseguibili (strumenti). Per impostare tutte queste directory è necessario utilizzare lo strumento di configurazione WinSDK .

Se si sta solo provando a modificare i percorsi di inclusione per un progetto e non per tutte le soluzioni, in Visual Studio 2008 procedere come segue: Fare clic con il pulsante destro del mouse sul nome del progetto in Solution Navigator. Dal menu popup selezionare Proprietà. Nella finestra di dialogo delle pagine delle proprietà selezionare Proprietà di configurazione-> C / C ++ / Generale. Fai clic nella casella di testo accanto all’etichetta “Ulteriori file di inclusione” e cerca la directory appropriata. Seleziona OK.

Ciò che mi infastidisce è che alcune delle risposte alla domanda originale non si applicano alla versione di Visual Studio menzionata.

Devi assicurarti di avere quanto segue:

 #include  

e non questo:

 #include "windows.h" 

Se questo non è il problema, controlla la risposta di RichieHindle .