hdrstop
pragma
Offre un maggiore controllo sui nomi dei file di precompilazione e sul percorso in cui viene salvato lo stato di compilazione.
Sintassi
#pragma hdrstop
[ ( "filename" ) ]
Osservazioni:
Il nome del file è il nome del file di intestazione precompilato da usare o creare (a seconda che /Yu
sia specificato o /Yc
. Se filename non contiene una specifica del percorso, si presuppone che il file di intestazione precompilato si trova nella stessa directory del file di origine.
Se un file C o C++ contiene un oggetto hdrstop
pragma quando viene compilato con /Yc
, il compilatore salva lo stato della compilazione fino al percorso dell'oggetto pragma. Lo stato compilato di qualsiasi codice che segue pragma non viene salvato.
Usare filename per denominare il file di intestazione precompilato in cui viene salvato lo stato compilato. Uno spazio tra hdrstop
e nome file è facoltativo. Il nome file specificato in hdrstop
pragma è una stringa ed è soggetto ai vincoli di qualsiasi stringa C o C++. In particolare, è necessario racchiuderlo tra virgolette e usare il carattere di escape (barra rovesciata, \
) per specificare i nomi di directory. Ad esempio:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Il nome del file di intestazione precompilata viene determinato in base agli elementi seguenti (in ordine di priorità):
Argomento dell'opzione del
/Fp
compilatoreArgomento del nome file in
#pragma hdrstop
Nome di base del file di origine con un'estensione PCH
Se nessuna delle /Yc
opzioni e /Yu
o hdrstop
pragma specifica un nome di file, il nome di base del file di origine viene utilizzato come nome di base del file di intestazione precompilato.
È inoltre possibile utilizzare i comandi di pre-elaborazione per eseguire la sostituzione delle macro come indicato di seguito:
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Le regole seguenti regolano dove è possibile inserire :hdrstop
pragma
Deve trovarsi all'esterno di eventuali dati o dichiarazione o definizione di funzione.
Deve essere specificato nel file di origine, non all'interno di un file di intestazione.
Esempio
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
// ... // Some code to display string
}
#pragma hdrstop
In questo esempio l'oggetto viene visualizzato dopo l'inserimento hdrstop
pragma di due file e una funzione inline è stata definita. Questa posizione potrebbe, in un primo momento, sembra essere una posizione strana per l'oggetto pragma. Si consideri, tuttavia, che l'uso delle opzioni /Yc
di precompilazione manuali e /Yu
, con hdrstop
pragma consente di precompilare interi file di origine o anche di codice inline. Il compilatore Microsoft non limita l'utente alla precompilazione solo delle dichiarazioni di dati.