hdrstop
pragma
Bietet Ihnen mehr Kontrolle über Vorkompilierungsdateinamen und über den Speicherort, an dem der Kompilierungsstatus gespeichert wird.
Syntax
#pragma hdrstop
[ ( "filename" ) ]
Hinweise
Der Dateiname ist der Name der vorkompilierten Headerdatei, die verwendet oder erstellt werden soll (je nach /Yu
Angabe oder /Yc
Angabe). Wenn der Dateiname keine Pfadspezifikation enthält, wird davon ausgegangen, dass sich die vorkompilierte Headerdatei im selben Verzeichnis wie die Quelldatei befindet.
Wenn eine C- oder C++-Datei eine hdrstop
pragma beim Kompilieren mit /Yc
enthält, speichert der Compiler den Zustand der Kompilierung bis zum Speicherort der pragma. Der kompilierte Zustand eines Codes, der auf den pragma folgenden Code folgt, wird nicht gespeichert.
Verwenden Sie den Dateinamen , um die vorkompilierte Headerdatei zu benennen, in der der kompilierte Zustand gespeichert wird. Ein Leerzeichen zwischen hdrstop
und Dateiname ist optional. Der in der hdrstop
pragma Zeichenfolge angegebene Dateiname ist eine Zeichenfolge und unterliegt den Einschränkungen einer beliebigen C- oder C++-Zeichenfolge. Insbesondere müssen Sie es in Anführungszeichen setzen und das Escapezeichen (umgekehrter Schrägstrich, ) verwenden, \
um Verzeichnisnamen anzugeben. Zum Beispiel:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Der Name der vorkompilierten Headerdatei wird gemäß den folgenden Regeln, in Rangfolge aufgelistet, bestimmt:
Das Argument für die
/Fp
CompileroptionDas Argument "Dateiname "
#pragma hdrstop
Der Basisname der Quelldatei mit einer PCH-Erweiterung
Wenn keines der /Yc
Optionen oder /Yu
die hdrstop
pragma Angabe eines Dateinamens vorhanden ist, wird der Basisname der Quelldatei als Basisname der vorkompilierten Headerdatei verwendet.
Sie können auch Präprozessorbefehle wie folgt verwenden, um Makroersetzung auszuführen:
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Die folgenden Regeln regeln, wo die hdrstop
pragma Platzierung erfolgen kann:
Es muss außerhalb einer Daten- oder Funktionsdeklaration oder -definition angezeigt werden.
Es muss in der Quelldatei, nicht in einer Headerdatei angegeben werden.
Beispiel
#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 diesem Beispiel wird angezeigt hdrstop
pragma , nachdem zwei Dateien eingeschlossen wurden und eine Inlinefunktion definiert wurde. Dieser Ort scheint zunächst eine ungerade Platzierung für die pragma. Berücksichtigen Sie jedoch die Verwendung der manuellen Vorkompilierungsoptionen /Yc
und /Yu
, mit der hdrstop
pragma es Ihnen möglich ist, ganze Quelldateien oder sogar Inlinecode vorkompilieren. Der Microsoft-Compiler beschränkt Sie nicht auf das Vorabkompilieren von Datendeklarationen.