精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。
锐英源VC++培训强调关键动手能力,掌握经典开源项目,突出软件工程学习,以互联网和积木式学习法,快速突破到中级程序员水平,适合爱好者和考试者培训学习。
VC++ stdafx.h是经常用的一种技术,这里列出了教学大纲的前面部分,VC++ stdafx.h视频收费10元,转帐给支付宝lookfar@163.com或微信ryysoft,注明:“VC++stdafx.h视频”。
VC自学者通过我们的VC++stdafx.h教程也能获益良多,谢谢关注。
下面是说这个stdafx.h头文件的作用,stdafx的意思为:Standard Application Frame Extend。标准应用框架扩展。并且AFX也代表了MFC的意思。
Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。
为避免这种浪费,AppWizard和VisualC++编译程序一起进行工作,如下所示:
◎AppWizard(应用程序向导)建立了文件stdafx.h,该文件包含了所有当前工程文件需要的MFCinclude文件。且这一文件可以随被选择的选项而变化。Socket,则会包含afxsock.h
◎AppWizard然后就建立stdafx.cpp。这个文件通常都是一样的。
后AppWizard就建立起工程文件,这样第一个被编译的文件就是stdafx.cpp。
◎当VisualC++编译stdafx.cpp文件时,它将结果保存在一个名为stdafx.pch的文件里。(扩展名pch表示预编译头文件。)
◎当VisualC++编译随后的每个.cpp文件时,它阅读并使用它刚生成的.pch文件。VisualC++不再分析Windowsinclude文件,除非你又编缉了stdafx.cpp或stdafx.h。
这个技术很精巧,你不这么认为吗?(还要说一句,Microsoft并非是首先采用这种技术的公司,Borland才是。)在这个过程中你必须遵守以下规则:
◎你编写(向导生成,编译要求是同一类)的任何.cpp文件都必须首先包含stdafx.h。 不过某些不信赖MFC,而只是提供一些函数给其它源文件使用,且编译选项和向导生成的文件不一样,可以不包含它。
◎如果你有工程文件里的大多数.cpp文件需要.h文件,顺便将它们加在stdafx.h(后部)上,然后预编译stdafx.cpp。
◎由于.pch文件具有大量的符号信息,它是你的工程文件里最大的文件。
如果你的磁盘空间有限,你就希望能将这个你从没使用过的工程文件中的.pch文件删除。执行程序时并不需要它们,且随着工程文件的重新建立,它们也自动地重新建立。
这个文件有以下知识点:
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
这两句是什么意思?
这是注释,起到提示的作用。也代表这些代码是被MFC和VC向导管理。不能轻易修改
#include "stdafx.h"
只要是通过向导建立的类的cpp文件都要在开始带这个语句
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
这段代码在干嘛?
如果没有定义__AFXWIN_H__ ,则报错:在包含这个文件前需要包含stdafx.h
including this file for PCH?这个呢?
就是为pch包含这个文件的意思。pch是编译时的一个输出文件
#pragma warning (disable: 4146)
#import "C:\Program Files\Common Files\System\ado\msado15.dll" rename("EOF", "EndOfFile")
using namespace ADODB;
#pragma warning (default: 4146)
#include <afxdisp.h>
#include <math.h>