hdrstop
pragma
Zapewnia większą kontrolę nad nazwami plików wstępnego kompilowania i lokalizacją, w której jest zapisywany stan kompilacji.
Składnia
#pragma hdrstop
[ ( "nazwa pliku" ) ]
Uwagi
Nazwa pliku jest nazwą wstępnie skompilowanego pliku nagłówka do użycia lub utworzenia (w zależności od tego, czy /Yu
/Yc
jest określony). Jeśli nazwa pliku nie zawiera specyfikacji ścieżki, zakłada się, że wstępnie skompilowany plik nagłówka znajduje się w tym samym katalogu co plik źródłowy.
Jeśli plik C lub C++ zawiera hdrstop
pragma element podczas kompilowania za pomocą /Yc
polecenia , kompilator zapisuje stan kompilacji w lokalizacji pragma. Skompilowany stan dowolnego kodu, który jest zgodny z elementem pragma , nie jest zapisywany.
Użyj nazwy pliku , aby nazwać wstępnie skompilowany plik nagłówka, w którym jest zapisywany stan skompilowany. Spacja między hdrstop
i nazwa pliku jest opcjonalna. Nazwa pliku określona w obiekcie hdrstop
pragma jest ciągiem i podlega ograniczeniom dowolnego ciągu C lub C++. W szczególności należy ująć go w cudzysłów i użyć znaku ucieczki (ukośnika odwrotnego, \
), aby określić nazwy katalogów. Na przykład:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Nazwa wstępnie skompilowanego pliku nagłówkowego jest określana zgodnie z następującymi regułami według pierwszeństwa:
Argument opcji kompilatora
/Fp
Argument nazwy pliku do
#pragma hdrstop
Nazwa podstawowa pliku źródłowego z rozszerzeniem PCH
Jeśli żadna z /Yc
opcji i /Yu
lub hdrstop
pragma określa nazwę pliku, nazwa podstawowa pliku źródłowego jest używana jako nazwa podstawowa wstępnie skompilowanego pliku nagłówka.
Możesz również użyć poleceń przetwarzania wstępnego, aby wykonać makro zastępujące w następujący sposób:
#define INCLUDE_PATH "c:\\progra~1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Następujące reguły określają, gdzie hdrstop
pragma można umieścić:
Musi znajdować się poza wszelkimi deklaracjami i definicjami danych lub funkcji.
Musi być określona w pliku źródłowym, a nie w pliku nagłówkowym.
Przykład
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
// ... // Some code to display string
}
#pragma hdrstop
W tym przykładzie element hdrstop
pragma pojawia się po dołączeniu dwóch plików i zdefiniowano funkcję śródliniową. Ta lokalizacja może początkowo wydawać się nietypowym miejscem dla elementu pragma. Należy jednak wziąć pod uwagę, że przy użyciu opcji /Yc
ręcznej wstępnego kompilowania i /Yu
, dzięki hdrstop
pragma temu można wstępnie skompilować całe pliki źródłowe, a nawet wbudowany kod. Kompilator firmy Microsoft nie ogranicza możliwości wstępnego kompilowania tylko deklaracji danych.