在Win32中实现MFC中TRACE的功能

Windows 2014年07月26日 ,

在MFC下开发程序时,经常使用的一个调试用的就是TRACE,TRACE是一个用于与调试器“交流”的宏,而且只有在程序的debug版本中才有效,release版本会去掉其代码。其使用方法完成可以参照C语言下的printf()函数。但问题就在于TRACE是包含在MFC的AFX.H头文件中的,可以参考http://msdn.microsoft.com/zh-cn/library/6w95a4ha.aspx

在Win32中实现MFC中TRACE的功能

需要用到OutputDebugString()函数,其功能就是将一个字符串输出到调试窗口的输出子窗口。

那么剩下的工作就是实现可变参数的问题了,可变参数使用C语言的如下结构宏实现,

va_list;
va_start();
va_end();

我们还需要注意实现时的字符编码问题,即是否使用宽字符。
具体实现如下。


void log(PTSTR szFormat, ...)
{
// Author:Furzoom
// Author URL:http://furzoom.com
 TCHAR szBuffer[1024];
 va_list pArgs;
 va_start(pArgs, szFormat);
 _vsntprintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), szFormat, pArgs);
 va_end(pArgs);
 OutputDebugString(szBuffer);
}

log函数就可以同TRACE一样使用。

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
日志标题:《在Win32中实现MFC中TRACE的功能》
日志链接:http://furzoom.com/trace-function-under-win32/
博客名称:枫竹梦

发表评论

插入图片

NOTICE1:请申请gravatar头像,没有头像的评论可能不会被回复!

回到顶部