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 hdrstoppragma 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 hdrstoppragma è 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à):

  1. Argomento dell'opzione del /Fp compilatore

  2. Argomento del nome file in #pragma hdrstop

  3. Nome di base del file di origine con un'estensione PCH

Se nessuna delle /Yc opzioni e /Yu o hdrstoppragma 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 :hdrstoppragma

  • 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 hdrstoppragma 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 hdrstoppragma 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.

Vedi anche

Direttive Pragma e parole __pragma chiave e _Pragma