经常在程序的Release版本发现BUG,但Debug版本又查不到,或者是在没有安装开发环境的PC上才能重现该BUG,此时很想看看程序执行过程中的数据情况,于是笔者就想写个程序,能够在Release版本和未装开发环境的情况下也可以使用TRACE的程序,现已完成,且经过很多朋友的使用测试,再此感谢他们的支持与帮助,并祝大家新年快乐!
使用时执行xTraceMonitor.exe,会出现一个小窗口(用于显示数据用),需要将TRACE输出到该监视窗口的程序,请在文件头部使用 #include "xTrace.h",然后将代码中的TRACE修改为XTRACE即可,如果包含了该头文件,控制台程序中也可以使用TRACE宏,而且是输出到VC调试环境的Output窗口中。 为了演示位图的TRACE,特提供一个设备无关位图类CSimpleDib,在文件SimpleDib.h中定义,可以从Bitmap文件中加载位图,也可以从资源中加载。
如果在发行程序时,想去掉这些附加的代码,无须删除XTRACE和#include "xTrace.h"语句,只需要在工程设置中定义NO_XTRACE宏即可,这样xTrace.h文件则犹如一个空文件一般,可执行程序中便没有任何附加代码了。
详细说明请参考xTrace.htm文件。
使用示例代码如下:
#include "stdafx.h"
#include "xTrace.h"
#include "SimpleDib.h"
#include "resource.h"
int _tmain(int argc, _TCHAR* argv[])
{
XTRACE("%s\n", "Hello!"); // 输出文字"Hello!"
XTRACE(RGB(255, 0, 0), "%s\n", "RED Text."); // 输出红色文字
XTRACE(RGB(0, 0, 255), "%s\n", "BLUE Text."); // 输出蓝色文字
CSimpleDib dib;
dib.Load(IDB_BITMAP_TEST);
XTRACE(dib.GetBitmapInfo(), dib.GetBits()); // 输出DIB位图
return 0;
}
第一次使用时请首先执行xTraceMonitor.exe,然后执行需要监视输出的程序,以后则无此要求。
下载示例源码:http://www.yanghan.net/codes/XTraceDemo.rar(内附xTraceMonitor.exe、xTrace.htm、SimpleDib.h)。