afx与全局变量

以afx开头的变量几乎都是全局变量,

afx_msg void OnBnClickedBtnCancel();这个呢
 
 

https://blog.csdn.net/luxuejuncarl/article/details/2618805

是MFC小组早期的代号,AFX,当时是指   applecation   freamwork   ,如果你的程序用到了MFC,那这个头文件是一定要包含的。

Microsoft的程序员开始试图将C++和面向对象的编程概念应用于Windows编程中,经编写出一个可以使windows编程工作更加简便的应用程序框架。他们把这个应用程序框架叫做AFX(AFX这个词来源于Application   FrameWork,但奇怪的是这个词组中并没有包含"X"这个字母)。直到今天,AFX小组早已不存在了,AFX这个名称也于1994年初不再使用,但在Visual   C++和MFC中,AFX的影子却随处可见,很多全局函数、结构和宏的标识符都被加上了AFX的前缀。  

关于afx这个词的意思tasehouny(阿甘)说的是对的     afx.h是VC里的预编译头,比如说你有十个CPP文件     每个都include了windows.h,结果windows.h就会被编译十次     要知道windows.h是很大的,编译起来很慢     这个时候你就可以在afx.h里加一句#include   <windows.h>     然后afx.h连同里面所有的include会被编译成一个PCH文件     这样编译十个CPP的时候都直接拿这个PCH文件来用     不用重复编译了,速度提高很多         如果你在建立项目的时候选了预编译头支持(缺省是有),     就必须在每个CPP的第一行加上#include   "afx.h"

在九十年代初的时候OO被炒得很热,许多人以为OO是无所不能的     微软也这么认为,所以他们想搞出一套类库来封装全部的OS特性     使得程序可以在WINDOWS   OS/2   X等等任何的GUI系统上运行     结果可想而知,这个东西当然是没做出来     到94年微软放弃了AFX,把AFX中已经完工的部分做了一点改进     形成了MFC     至今MFC还有LINUX版本,也算是AFX计划的一点残留吧


猜你喜欢

转载自blog.csdn.net/hk121/article/details/80960428