作者:宇行 【http://www.cookbus.com】
英文原文:http://msdn.microsoft.com/zh-cn/library/ew16s3zc(VS.80).aspx
ASSERT(
booleanExpression
)
参数booleanExpression是代表一个表达式(包含指针变量) 评估判断他是非零还是0.
注释:
如果结果是0,这个宏(macro )打印一个诊断消息和放弃这个程序. 如果状态时非零, 就做一些事情。
这个诊断消息的形式
assertion failed in file <name> in line <num>
这里的 name 是源文件的名字, num 是断言那个已经失败的源文件的线索数量。
在发行版本的 MFC当中, ASSERT 不做评估
表达式因此将不影响程序运行. 如果表达式在必须
评估的环境, 用 VERIFY 宏(macro) 代替 ASSERT 的使用。
备忘:这个函数仅用于Debug 版 MFC。
在 MFC ISAPI 应用, 一个断言调试样式将产生一个 dialog box (ASSERT dialog boxes are now modal by default);这将影响或者挂起这个执行. 去压制断言对话, 添加下面的行在你的项目源文件 (projectname.cpp):
// For custom assert and trace handling with WebDbg
#ifdef _DEBUG
CDebugReportHook g_ReportHook;
#endif
Once you have done this, 你能使用这个 WebDbg 工具 (WebDbg.exe) 去看
判断结果.信息来自利用WebDbg工具, 看 跟踪消息和处理声明。
范例:
// example for ASSERT
CAge* pcage = new CAge( 21 ); // CAge is derived from CObject.
ASSERT( pcage!= NULL )
ASSERT( pcage->IsKindOf( RUNTIME_CLASS( CAge ) ) )
// Terminates program only if pcage is NOT a CAge*.



