Standard Application Fram Extend
没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。
为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:
1.AppWizard建立了文件stdafx.h,该文件包含了所有当前工程文件需要MFCinclude 文件。且这一文件可以随被选择的选项而变化。
2.AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。
3.然后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
4当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)
5.当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。
VisualC++不再分析Windowsinclude文件,除非你又编缉了stdafx.cpp或stdafx.h。
(还要说一句,Microsoft并非是首先采用这种技术的公司,Borland才是。)在这个过程中你必须遵守以下规则:
1.你编写的任何.cpp文件都必须首先包含stdafx.h。
7如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h(后部)上,然后预编译stdafx.cpp。
2.由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。
如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立
stdafx.h文件中包含了一些必要的头文件(如afxwin.h),对应于stdafx.h有一个stdafx.cpp文件,该文件内包含一句: #include "stdafx.h",其作用是令编译器编译出一个stdafx.obj预编译头文件(pre-compile header,需要设置编译选项),在下次编译时以降低总的编译时间。若使用ClassWizard定义新类,则有可能在stdafx.h中增加新的 include files。比如,若选用MFC template classes,stdafx.h中便会增加:#include <afxtempl.h>。
注:
1.afxwin.h是MFC编程的必需文件,其中包含如CString,CEdit类运行所必需的头文件,最好保证该句在头文件首行;它还会调用windows.h,改头文件包含有数据类型的定义、API入口点定义和其它有用的参数信息;
2.非MFC工程使用MFC库时最常见的问题就是windows.h重复包含错误:fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>;
3.#define WIN32_LEANAND_MEAN,在windows的头文件中拒绝接受MFC类库,以加速编译时间;
4.afx - afx中的af指的是Application Frame的缩写,曾经有一个技术开发团队专门作Application Frame,后来给这个团队命名用afx,x本身没有含义,只不过构成一个响亮的口号,后来就一直沿用下来。
5.
#if _MSC_VER > 1000 //表示版本
#pragma once //避免头文件之间的相互包含
#endif // _MSC_VER > 1000
6.建立了一个新的空的工程,项目中的stdafx.cpp使用的是Create Precompiled Header (/Yc),而其它.cpp是用的Use Precompiled Header (/Yu),并且Create/Use PCH Trhough File都是stdafx.h
分享到:
相关推荐
将此文件<stdafx.h>放在头文件目录中,可解决编译失败问题。编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h...
stdafx.h 头文件 很多时候c运行 提示找不到stdafx.h ,
### stdafx.h头文件探秘 #### 一、引言 在进行VC++开发时,我们经常会在项目中看到一个名为`stdafx.h`的头文件。这个头文件看似不起眼,实则扮演着非常重要的角色。它主要用于组织和管理那些在程序中频繁使用到的...
`stdafx.h`是Visual C++开发环境中一个非常关键的头文件,主要作用在于优化编译过程,提高编译效率。它的出现主要是为了处理大量重复包含的系统和库头文件,尤其是MFC(Microsoft Foundation Classes)相关文件。MFC...
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,...
// stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #if !defined(AFX_STDAFX_H__C4B5DA9B_21...
StdAfx.h vc++重要的头文件的 要放到vc98/include文件夹里面
将此文件放在头文件目录中,可解决编译失败问题。编译器通过一个头文件stdafx.h来使用预编译头文件。自己已经试过了,没发现问题,解决了自己的问题。资源没问题,通过了验证。
stdafx.h这个文件是在安装VC++6.0之后有的时候会显示不存在这样的文件,现在只要把这个文件下下来然后放到lib库中就可以了,当然也可以放到你所建的工程下.
stdafx.h头文件下载,在VC++6.0中有时会发现没有这个文件,可以将些下载下来放到需要的工程文件当中
stdafx.h C头文件!把它添加到工程文件夹下
`stdafx.h` 文件是预编译头文件,它的主要作用是提高编译速度。在MFC项目中,通常会包含许多标准库和MFC库的头文件,这些头文件中的宏定义和类型声明等信息会被预先编译并保存在预编译头对象文件中(通常是`.pch`...
总结来说,`stdafx.h`是Visual C++项目中用于实现预编译头的头文件,它的主要作用是提高编译速度,包含项目常用且变化不大的头文件。理解并正确使用`stdafx.h`能够帮助我们优化开发流程,提升开发效率。在实际项目中...
编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,...
在Microsoft Visual C++ 6.0 (VC6.0) 中,`stdAfx.h` 和 `StdAfx.cpp` 文件是预编译头文件(Precompiled Header File)的一部分,用于提高编译效率。预编译头文件的概念是C++编程中的一个重要特性,尤其是在大型项目...
在C++编程环境中,预编译头文件`stdafx.h`是一个常见的概念,特别是在使用Microsoft Visual Studio等IDE时。这个头文件的主要目的是为了提高编译效率,通过预编译一些经常改变但不常重新编译的代码,从而减少编译...
"stdafx.h" 是预编译头的头文件,它通常包含了项目中常用的头文件,比如Windows API、MFC框架或者 ATL 框架的头文件,以及可能的自定义全局变量和函数声明。开发者会在项目中其他源文件的开头包含"stdafx.h",以利用...
stdafx.h在C++中起到的作用是头文件预编译,即把C++工程中使用的MFC头文件预先编译,以后该工程编译时,直接使用预编译的结果,以加快编译速度。C++编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h并不是...