stdafx的英文全称为:Standard Application Framework Extensions(标准应用程序框架的扩展)。
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。
(1)一般情况下,可以把公共使用的头文件放置在stdafx.h中。
(2)在文件中,如果添加特殊的头文件,需要添加在stdafx位置后边,否则将不MFC的预编译机制编译被处理。
预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。可以通过项目的配置属性对话框中的相关设置进行修改,一般不用修改。位置如下图:$(TargetName)表示项目名称;$(IntDir):表示输出目录。默认情况下为:项目目录下面的Debug目录下位置。可以通过选线该设置配置是否取消预编译机制,一般情况下保留,因为MFC提供生成的很多文件都包含此头文件。
编译器通 过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指 令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。在它前面的所有代码将被忽略,所以其他的头文件应该在这一行后面被包含。否则,你将会得到“No such file or directory”这样让你百思不得其解的错误提示。
stdafx.h中没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
MFC的预编头文件机制,与应用程序想到的工作流程:
文章来源:百度百科
浙公网安备 33010602011771号