《C语言实例教程(PDF格式)》第132章


情。
在MFC的发布版本中,它仍对参数进行测试,但是当参数为假时,不 
弹出诊断信息对话框。
下面这段代码可以让用户对ASSERT和VERIFFY两个宏之间的差别有更 
…………………………………………………………Page 636……………………………………………………………
深入的了解,这段代码是在MFC的发布版本中编译的,之所以选择发 
布版本是因为在这段代码中两个宏后面的参数都为假,使用发布版本 
编译可以忽略这些错误。但是ASSERT不检测参数的真假,而VERIFY检 
测参数的真假,所以只能弹出一个对话框。
在一个MFC的多文档应用程序Test中的OnDraw 函数中ToDo语句后 
面添加下面的代码:
bool m_bValue=false;
ASSERT(m_bValue & ASSERTMessage());
VERIFY(m_bValue & VERIFYMessage());
为CTestView类添加两个成员函数ASSERTMessage()和VERIFYMessage 
():
bool CTestView::ASSERTMessage()

MessageBox(〃经过ASSERT检验〃);
return true;

bool CTestView::VERIFYMessage()

MessageBox(〃经过VERIFY检验〃);
return true;

在MFC的发布版本中编译并运行该程序,弹出如图11。3所示的消息 
框,显示 “经过VERIFY检验”,说明VERIFY检测了它的参数,而 
ASSERT没有检测其参数。
图11。 3 VERIFY示例
(3) TRACE
…………………………………………………………Page 637……………………………………………………………
TRACE宏的用法如下:
TRACE( exp )
其中的参数exp定义了一组数量可变的参数。
TRACE是一个在程序运行时跟踪变量数值的便捷的方法,它的用法和 
Printf完全相同。
l 注意:
l 使用TRACE一次最多可以显示512个字符,而且这个宏也只在MFC的 
调试版本中有效。
下面的例子使用TRACE宏在程序运行时跟踪变量m_value的值。
代码如下:
int m_value=100;
for(int i=0;i
小说推荐
返回首页返回目录