hdrstop
Fornece controle adicional sobre nomes de arquivo de pré-compilação e sobre o local em que o estado da compilação é salvo.
#pragma hdrstop [( "filename" )]
Comentários
O argumento filename é o nome do arquivo de cabeçalho pré-compilado a ser usado ou criado (dependendo se /Yu ou /Yc é especificado). Se filename não contém uma especificação de caminho, pressupõe-se que o arquivo de cabeçalho pré-compilado esteja no mesmo diretório do arquivo de origem.
Se um arquivo de C ou C++ contém um pragma hdrstop quando compilado com /Yc, o compilador salva o estado da compilação até o local do pragma. O estado compilado de todo o código que se segue ao pragma não é salvo.
Use filename para nomear o arquivo de cabeçalho pré-compilado no qual o estado compilado é salvo. Um espaço entre hdrstop e filename é opcional. O nome de arquivo especificado no pragma hdrstop é uma cadeia de caracteres e, portanto, está sujeito às restrições de qualquer cadeia de caracteres de C ou C++. Em particular, você deve colocá-lo entre aspas e usar o caractere de escape (barra invertida) para especificar nomes de diretório. Por exemplo:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
O nome do arquivo de cabeçalho pré-compilado é determinado de acordo com as regras a seguir, em ordem de precedência:
O argumento da opção de compilador /Fp
O argumento filename de #pragma hdrstop
O nome base do arquivo de origem com a extensão .PCH
Para as opções /Yc e /Yu, se nenhuma das duas opções de compilação nem o pragma hdrstop especificar um nome de arquivo, o nome base do arquivo de origem será usado como o nome base do arquivo de cabeçalho pré-compilado.
Você também pode usar comandos de pré-processamento para executar a substituição de macros, da seguinte maneira:
#define INCLUDE_PATH "c:\\progra~`1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
As seguintes regras orientam onde o pragma hdrstop pode ser colocado:
Deve aparecer fora de qualquer declaração ou definição de dados ou de função.
Deve ser especificado no arquivo de origem, e não em um arquivo de cabeçalho.
Exemplo
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
... // Some code to display string
}
#pragma hdrstop
Nesse exemplo, o pragma hdrstop aparece depois que dois arquivos foram incluídos e uma função embutida foi definida. Inicialmente, isso pode parecer um posicionamento estranho para o pragma. Porém, considere que, usando as opções de pré-compilação manual, /Yc e /Yu, com o pragma hdrstop, você pode pré-compilar arquivos de origem inteiros — incluindo até o código embutido. Com o compilador da Microsoft, você não está limitado a pré-compilar somente declarações de dados.