读书人

利用afxDump 回调试自己的程序

发布时间: 2012-07-28 12:25:13 作者: rapoo

利用afxDump 来调试自己的程序

在开发调试过程中,我们往往要想知道一些变量的当前值,简单的变量可以用TRACE语句在调试窗口中打印出来:

TRACE(" this height :%d",height);

但是如果遇到比较复杂的值,如CRect, CRgn 等,如果要把它的值都打印出来,那是相当的麻烦:

TRACE(" this left :%d right % top % bottom %d \n",rect.left,rect.right,rect.top,rect.bottom);

如果程序很多地方都要这么做,岂不郁闷死,

还好,vc的开发者已经想到了这个问题,特地提供了一个宏:afxDump来简化这个工作,相对前面那个例子,现在可以这样写:

afxDump << rect << "\n";

这样你就美哉了吧!但是使用不久你就发现还是有不方便的地方:

1, 在release 下 新加的代码编译不了。

2, 每一次都要在后面补上 << "\n" ;这样的语句,不然它打印字串不会自动换行。

现在vs不会再给我们提供进一步的帮助,只能自己想办法;经过不停的摸索,终于找到一个办法,如下:


自己定义一个CDumpContext对象 debugPrintObj;

再定义一个宏debugPrint(a)如上,相对上面的例子可以这样使用:

debugPrint(rect);

这样就完满的解决了这个问题!

读书人网 >编程

热点推荐