提供了其他控件为预编译文件的名称和对生成状态中保存的位置。
#pragma hdrstop [( "filename" )]
备注
文件名 是使用或创建的预编译头文件的名称 (基于 /Yu 或 /Yc 是否指定)。如果 文件 不包含路径规范,预编译头文件假定在内容和源文件同名。
如果 c. 或 C++ 文件包含 hdrstop 请注意,当使用 /Yc 进行编译,编译器将生成状态到批注的位置。按照说明任何代码的生成状态不会保存。
使用 文件名 为该生成状态中保存的预编译头文件。在 hdrstop 和 文件名之间的 一个空格是可选的。在 hdrstop 说明指定的因此文件名是字符串并受任何 C 或 C++ 字符串的约束。具体而言,您必须用引号并使用转义字符 (杠) 指定目录名。例如:
#pragma hdrstop( "c:\\projects\\include\\myinc.pch" )
预编译头文件的名称基于以下规则确定的,按照优先级的顺序:
对 /Fp 编译器选项的参数
文件名 参数为 #说明 hdrstop
源文件的基名称具有 .PCH 扩展的
对于 /Yc 和 /Yu 选项,因此,如果两个生成选项和 hdrstop 杂注不指定文件名,使用源文件的基名称,当预编译头文件的基名称。
还可以使用预处理命令执行宏替换如下所示:
#define INCLUDE_PATH "c:\\progra~`1\\devstsu~1\\vc\\include\\"
#define PCH_FNAME "PROG.PCH"
.
.
.
#pragma hdrstop( INCLUDE_PATH PCH_FNAME )
以下规则管理可以放置的位置 hdrstop 说明:
它必须在所有数据外部出现或函数声明或定义。
必须指定在源文件,而不是在头文件中。
示例
#include <windows.h> // Include several files
#include "myhdr.h"
__inline Disp( char *szToDisplay ) // Define an inline function
{
... // Some code to display string
}
#pragma hdrstop
在此示例中, hdrstop 请注意,显示两个文件包括后,并且内联函数定义。这可能,最初,似乎是注意的一个或多个位置。考虑,但是,该使用手动预编译选项, /Yc 和 /Yu,与 hdrstop 说明使得可以预编译整个源文件 —即使内联代码。Microsoft 编译器不限制到预编译只声明的数据。