Stdafx.h是一个标准应用扩展程序中的重要文件,通常用于头文件预编译,也是我们编程过程中不可或缺的重要文件之一!
基本介绍
预编译头文件是通过编译stdafx.cpp生成的,并以项目名称命名。由于预编译头文件的后缀是“pch”,所以编译结果文件是projectname.pch。
编译器通过头文件stdafx.h使用预编译头文件。stdafx.h的头文件名称可以在project的编译设置中指定。编译器认为指令#include 'stdafx.h '之前的所有代码都是预编译的,并跳过指令#include 'stdafx。并用projectname.pch编译此指令后的所有代码。
所以所有MFC实现文件的第一句话就是:#include 'stdafx.h '它之前的所有代码都将被忽略,所以其他头文件应该包含在这一行之后。否则会得到类似“没有这个文件或目录”的错误提示,让你百思不得其解。
stdafx.h作用
stdafx.h中没有函数库,但是定义了一些环境参数,使得编译后的程序运行在32位操作系统环境中。
Windows和MFC的包含文件非常大。即使有快速处理程序,编译器也需要很长时间才能完成工作。因为每一次。CPP文件包含相同的包含文件,为每个文件重复处理这些文件是愚蠢的。CPP文件。
为了避免这种浪费,AppWizard和VisualC编译器协同工作,如下所示:
AppWizard建立了文件stdafx.h,包含当前工程文件所需的所有MFCinclude文件。并且该文件可以随着所选择的选项而改变。
AppWizard然后建立Stdafx.cpp这个文件通常是一样的。
然后AppWizard构建工程文件,所以第一个编译的文件是stdafx.cpp
VisualC编译stdafx.cpp文件时,会将结果保存在一个名为stdafx.pch的文件中(扩展名pch表示预编译头文件。)
当VisualC编译每个后续。cpp文件,它读取并使用。它刚刚生成的pch文件。除非您再次编辑stdafx.cpp或stdafx.h,否则VisualC将不再分析Windowsinclude文件。
在此过程中,您必须遵守以下规则:
任何。您编写的cpp文件必须首先包含stdafx.h
如果你拥有最多。需要的工程文件中的cpp文件。h文件,顺便添加到stdafx.h (back),然后预编译stdafx.cpp。
因为。pch文件有很多符号信息,它是你的工程文件中最大的文件。
如果磁盘空间有限,您希望删除。您从未使用过的项目文件中的pch文件。执行程序时不需要它们,它们会随着工程文档的重新建立而自动重新建立。