zoukankan      html  css  js  c++  java
  • //{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT

    说明:这篇日志我不知道怎么命名好,虽然内容很少,但是讲的关键字很多,如果你有幸打开这篇日志,不妨往下看看

    背景:我们使用 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工作,那你删除这些代码倒也是不介意。前提是,你的层次已经到了那个程度。
  • 相关阅读:
    一起谈.NET技术,.NET分布式架构开发实战之一 故事起源 狼人:
    JS替换节点
    mysql数据库的简单语句的介绍(1)
    JS对img进行操作
    POJ 1006 Biorhythms 数论(孙子定理)
    Tomcat与Jetty插件 配置根路径指定项目
    [置顶] cocos2dx 2.x版本之win32 window移植android 环境搭配 只用NDK 超级详细 android 环境搭配
    调频广播六十年
    ajax两个网页实现完美的 分页功能
    Cocos2dX数据、动作、消息的基本操作
  • 原文地址:https://www.cnblogs.com/herbertchina/p/4306817.html
Copyright © 2011-2022 走看看