【转载】特殊宏://{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT
原文:http://yyguangzheng.blog.163.com/blog/static/603488402014102215153610/
说明:这篇日志我不知道怎么命名好,虽然内容很少,但是讲的关键字很多,如果你有幸打开这篇日志,不妨往下看看
背景:我们使用 VC++6.0 开发MFC应用程序,初学者一定会为那么多行的注释代码感到头痛,下面就说说这些有益无意义的注释
//{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT 我们看到很多这样打头的代码,其中典型的一个,在你应用程序的 CApp 头文件中
// Implementation
//{{AFX_MSG(CHelloMFCApp)
afx_msg void OnAppAbout();
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
刚开始始终不知道注释干嘛的,后来看见中间的语句 afx_msg void OnAppAbout(); 其中的 afx_msg ,我查阅一些说明:
在afxwin.h中找到一些afx_msg的解释:
#ifndef afx_msg
#define afx_msg // intentional placeholder
#endif
intentional placeholder 故意的占位符,你可以翻译成有计划策略的占位符,总之就是一个没有实际意义的占位符,看定义就知道,没有起到什么作用,因为 #define 没有给他赋什么值。
这个对编译器来说,相当于什么都没有;
对于人来说,我们可以看到这样的符号;
对于类向导来说.这个符号才是有意义的.它是一个消息处理函数的前缀.类向导生成的消息函数,分发函数,事件响应函数都以这个为前缀.如果去掉了,向导将不能识别。
afx_msg目前只是一个占位符,今后微软可能会赋予它确实的意义,来自MFC AFXWIN.H文件。
于是对比//{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT,得知这些有规律的注释是类向导自动生成的格式,用于识别具体的函数,以及他们的分类、位置,不能人为的随意更改,不然会导致类向导无法正确识别。
当然,如果你是纯手打代码,不适用IDE工作,那你删除这些代码倒也是不介意。前提是,你的层次已经到了那个程度。
【转载】特殊宏://{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT的更多相关文章
- [转载]C宏定义的小结
FROM:http://blog.csdn.net/sunboy_2050/article/details/6103530 实现代码实例 程序代码: #include <stdio.h> ...
- 关于对afx_msg的解释-----来源百度百科
1AFX前缀 Afx前缀是微软MFC一个小组的名称简写,并没有别的意义. MFC的很多代码,包括全局函数名.宏.头文件名都使用了"Afx". Afx*.h是一组MFC的核心头文件, ...
- afx_msg解释
以前一直不知道AFX_MSG是什么意思,只是觉得它应该是个消息映射函数,但是具体代表什么意思,会返回一个什么样的值是一点都不清楚,今天查了下资料,把查到的东西放这,以免以后忘了还得再查. 在头文件(D ...
- VS2013 MFC基于对话框编程
前言一直利用Qt库做Ui设计,但针对于一些MFC项目,掌握一些必要的MFC开发技巧还是很有必要的.这篇博客里就将自己所学的一些MFC浅显知识记录一下,方便今后的学习.博客里只记录关键步骤. 一.新建M ...
- MFC如何添加系统消息处理函数?
http://zhidao.baidu.com/question/318026804.html 在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成 ...
- MFC 总体理解
在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用 ...
- 【MFC】学习与问题整合
需要源码联系邮件:kangxlchn@163.com 1.新建一个MFC工程(基于对话框) 环境:vs2017 统统NEXT 新建完成后打开MFCPrj.cpp文件 打开类试图 每创建一个MFC项目, ...
- 第四课——MFC应用程序框架
一.MFC应用程序类型 上篇文章的彩蛋:可通过使用MFC应用程序向导(MFC AppWizard)的功能来创建所需要的应用程序,这意味着不需要输入任何代码.MFC除了应用程序向导,还对应用程序项目有着 ...
- //{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT
说明:这篇日志我不知道怎么命名好,虽然内容很少,但是讲的关键字很多,如果你有幸打开这篇日志,不妨往下看看 背景:我们使用 VC++6.0 开发MFC应用程序,初学者一定会为那么多行的注释代码感到头痛, ...
随机推荐
- 将DataRow赋值给model中同名属性
/// <summary> /// 将DataRow赋值给model中同名属性 /// </summary> /// <typeparam name="T&qu ...
- [翻译] GMCPagingScrollView
GMCPagingScrollView https://github.com/GalacticMegacorp/GMCPagingScrollView GMCPagingScrollView is a ...
- [翻译] TGLStackedViewController
TGLStackedViewController A stack layout with gesture-based reordering using UICollectionView -- insp ...
- IE漏洞的调试心得
在调试漏洞的过程中,个人感觉最棘手的就是ie浏览器的漏洞和flash player的漏洞了.这里打算记录一下学习过程中的心得(主要是基于uaf类),以方便新人学习. 首先,ie漏洞与众不同的是,程序的 ...
- 解决linux buffer/cache 消耗内存过高引发的问题
工作中接到DBA报障某台服务器 跑一些大的数据,服务器就无法远程连接,报错,抓过日志叫DELL工程师检测也没问题,系统也重装过, 现在些一些较大的数据就会报如 图错误,由于服务器远在异地城市IDC机房 ...
- 铁乐学python_day23_面向对象进阶1_反射
铁乐学python_day23_面向对象进阶1_反射 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ isinstance()和issubclass() 两者的返回值 ...
- css3实现border渐变色
案例1 .box{ width: 100px; height: 100px; border:10px solid #ddd; border-image: -webkit-linear-gradient ...
- windows 查看端口号,杀进程
查看端口号: 开始--运行--cmd netstat –and 杀进程: windows任务管理器 查看--显示列-PID 相关知识: 一台机器的80端口被httpd (apache) ...
- Sharepoint 2013 多服务器域的目录服务器和搜索服务的配置
一般而言,大部分的sharepoint的管理工作均可以通过Centrlal Admin完成,可惜这个操作不得不要用powershell. 假如Webfront服务器叫 WebServer 目录服务器叫 ...
- webpack react 单独打包 CSS
webpack react 单独打包 CSS webpack require css的方法,默认会把css 打入到js文件中,加载顺序有问题,如果需要打出独立的css文件 操作步骤: step1: 安 ...