65.9K
CodeProject 正在变化。 阅读更多。
Home

扩展调试宏

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (5投票s)

2001年6月14日

1分钟阅读

viewsIcon

56295

downloadIcon

748

一组用于检查表达式的调试宏,它们在

Sample Image - LJSDebug.gif

引言

这段代码可以使调试稍微容易一些。这段代码只是一个宏定义文件。

MFC 的 TRACE 宏仅将消息输出到调试窗口,而且在发布版本中没有用处。VERIFYASSERT 宏在发布版本中也没有用处。如果我们能够控制调试宏,而不管编译模式如何,这将使我们更容易进行调试。所以我编写了这个。它只是宏定义,但我认为它很有用。

这些宏是

// These macros return false and exit function when expression is false
CHECKEXPR(bExpression, ERRORMSG, RETURNVALUE) 
CHECKVOIDEXPR(bExpression, ERRORMSG) 
CHECKFUNC(bExpression, ERRORMSG, RETURNVALUE) 
CHECKVOIDFUNC(bExpression, ERRORMSG) 

// This macro exits the program when expression is false
EXITCHECKEXPR(bExpression, ERRORMSG, RETURNVALUE) 
EXITCHECKVOIDEXPR(bExpression, ERRORMSG) 
EXITCHECKFUNC(bExpression, ERRORMSG, RETURNVALUE) 
EXITCHECKVOIDFUNC(bExpression, ERRORMSG) 

如果发生意外情况,我们希望退出程序,或者忽略该情况并强制处理。如果想要退出程序,可以使用 EXITCHECK* 宏,如果想要忽略错误并继续,则使用 CHECK* 宏。

要使用此宏文件,您只需要添加

#include "LJSDebug.h"

到您的文件中。您必须在添加 #include "LJSDebug.h" 之前预定义 __LJS__DEBUG__YES____LJS__DEBUG__NO__

它在 Unicode 环境下以及 VC++ 6.0 中工作。 任何人都可以自由使用和修改此文件。

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.