hdrstop
Poskytuje větší kontrolu nad názvy souborů předkompilace a nad umístěním, ve kterém je uložen stav kompilace.
#pragma hdrstop [( "filename" )]
Poznámky
Název souboru je název předkompilovaného souboru hlaviček pro použití nebo vytvoření (podle toho, zda je zadána možnost /Yu nebo /Yc).Pokud název souboru neobsahuje specifikaci cesty, předpokládá se, že předkompilovaný soubor hlaviček je umístěn ve stejném adresáři jako zdrojový soubor.
Obsahuje-li soubor kódu jazyka C nebo C++ direktivu pragma hdrstop při kompilaci s možností /Yc, kompilátor uloží stav kompilace do umístění direktivy pragma.Zkompilovaný stav jakéhokoli kódu, který následuje direktivu pragma není uložen.
Použijte názvu souboru pro pojmenování předkompilovaného souboru hlaviček, ve kterém je uložen zkompilovaný stav.Mezera mezi direktivou pragma hdrstop a názvem souboru je nepovinná.Název souboru zadaný v direktivě pragma hdrstop je řetězec a proto je omezen na libovolný řetězec jazyka C nebo C++.Zejména je nutné jej uzavřít do uvozovek a použít řídící znak (zpětné lomítko) pro zadání názvů adresářů.Příklad:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
Název předkompilovaného souboru hlaviček se určuje podle následujících pravidel, v pořadí podle priority:
Argument možnosti kompilátoru /Fp
Argument název souboru direktivy #pragma hdrstop
Základní název zdrojového souboru s příponou .PCH
Pokud u možností /Yc a /Yu žádná z těchto dvou možností kompilace ani direktiva pragma hdrstop neurčuje název souboru, použije se základní název zdrojového souboru jako základní název předkompilovaného souboru hlaviček.
Lze také použít příkazy předzpracování pro provedení nahrazení makra následovně:
#define INCLUDE_PATH "c:\\progra~`1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
Následující pravidla určují, kde lze direktivu pragma hdrstop umístit:
Musí být uvedena mimo jakékoliv deklarace dat, funkce nebo definice.
Musí být zadána ve zdrojovém souboru, nikoli v souboru hlaviček.
Příklad
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
... // Some code to display string
}
#pragma hdrstop
V tomto příkladu se direktiva pragma hdrstop zobrazí za dvěma soubory, které byly zahrnuty a byla definována vložená funkce.To se může zpočátku zdát, jako neobvyklé umístění direktivy pragma.Zvažte však, že možnost ruční předkompilace , /Yc a /Yu, s direktivou pragma hdrstop umožňuje předkompilovat celé zdrojové soubory, dokonce i vložený kód.Kompilátor společnosti Microsoft předkompilaci neomezuje pouze na deklarace dat.