Visual C++ MFC 中常用宏.docVIP

  • 4
  • 0
  • 约6.49千字
  • 约 7页
  • 2016-09-15 发布于江苏
  • 举报
Visual C++ MFC 中常用宏.doc

Visual C++ MFC?中常用宏的含义(转载)? ??? AND_CATCHAND_CATCH   AND_CATCH(exception_class,exception _object_point_name)   说明:   定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的 异常处理代码可以访问异常对象(若合适的话)已得到关于异常的特别原因的更多消息。在AND_CATCH块中调用THROW_LAST宏以便把处理过程移 到下个外部异常框架。AND_CATCH可标记CATCH或AND_CATCH块的末尾。   注释:   AND_CATCH块被定义成为一个C++作用域(由花括号来描述)。若用户在此作用域定义变量,那么记住他们只在此作用域中可以访问。他也用于exception_object_pointer_name变量。   ASSERT   ASSERT(booleanExpression)   说明:   计算变量的值。如果结构的值为0,那么此宏便打印一个诊断消息并且成讯运行失败。如果条件为非0,那么什么也不做。诊断消息的形式为:?assertion failed in file in line?其中name是元文件名,num是源文件中运行失败的中断号。在Release版中,ASSERT不计算表达式的值也就不中断程序。如果必须计算此表达式的值且不管环境如何那么用VERIFY代替ASSERT。   注释:   ASSERT只能在Debug版中用   ASSERT_VAILD   ASSERT_VAILD(pObject)   说明:   用于检测关于对象的内部状态的有效性。ASSERT_VALID调用此对象的AssertValid成员函数(把它们作为自己的变量来传递)。在?Release版中ASSERT_VALID什么也不做。在DEBUG版中,他检查指针,以不同于NULL的方式进行检查,并调用对象自己的?AssertValid成员函数。如果这些检测中有任何一个失败的话,那么他会以与ASSERT相同的方法显示一个警告的消息。   注释:   此函数只在DEBUG版中有效。   BEGIN_MESSAGE_MAP   BEGIN_MESSAGE_MAP(the class,baseclass)   说明:   使用BEGIN_MESSAGE_MAP开始用户消息映射的定义。在定义用户类函数的工具(.cpp)文件中,以BEGIN_MESSAGE_MAP宏开始消息映射,然后为每个消息处理函数增加宏项,接着以END_MESSAGE_MAP宏完成消息映射。   CATCH   CATCH(exception_class,exception_object_pointer_name)   说明:   使用此用定义一个代码块,此代码用来获取当前TRY块中都一个异常类型。异常处理代码可以访问异常对象,如何合适的话,就会得到关于异常的特殊 原因的更多消息。调用THROW_LAST宏以把处理过程一下一个外部异常框架,如果exception-class是类CExceptioon,那么会 获取所有异常类型。用户可以使用CObject::IsKindOf成员函数以确定那个特别异常被排除。一种获取异常的最好方式是使用顺序的?AND_CATCH语句,每个带一个不同的异常类型。此异常类型的指针由宏定义,用户不必定义。   注释:   此CATCH块被定义作一个C++范围(由花括号描述)。如用户在此范围定义变量,那么它们只在吃范围内可以访问。他还可以用于异常对象的指针名。   DEBUG_NEW   #define new DEBUG_NEW   说明:   帮助查找内存错误。用户在程序中使用DEBUG_NEW,用户通常使用new运算符来从堆上分配。在Debug模式下(但定义了一个DEBUG?符号),?DEBUG_NEW为它分配的每个对象记录文件名和行号。然后,在用户使用CMemoryState::DumpAllObjectSince成员函数时,每个以DEBUG_NEW分配的对象分配的地方显示出文件名和行号。 为了使用DEBUG_NEW,应在用户的资源文件中插入以下指令:#define new DEBUG_NEW?一旦用户插入本指令,预处理程序将在使用new的地方插入DEBUG_NEW,而MFC作其余的工作。但用户编译自己的程序的一个发行版时,?DEBUG_NEW便进行简单的new操作,而且不产生文件名和行号消息。   DECLARE_DYNAMIC   DECLARE_DYNAMIC(class_name)   说明:   但从CObject派生一个类时,此宏增加关于一个对象

文档评论(0)

1亿VIP精品文档

相关文档