当前位置:  开发笔记 > 编程语言 > 正文

是否有基本win32 C++的TRACE语句?

如何解决《是否有基本win32C++的TRACE语句?》经验,为你挑选了1个好方法。

在MFC C++(Visual Studio 6)中,我习惯使用TRACE宏进行调试.是否有一个与win32相同的声明?



1> jacobsee..:

_RPTn效果很好,虽然不太方便. 下面是一些代码,它将MFC TRACE语句重新创建为允许可变数量参数的函数.还添加了TraceEx宏,它预先添加源文件和行号,以便您可以单击返回语句的位置.

更新:CodeGuru上的原始代码不会在发布模式下为我编译,因此我更改了为发布模式删除TRACE语句的方式.以下是我在Trace.h中的完整资源. 感谢Thomas Rizos的原作:

// TRACE macro for win32
#ifndef __TRACE_H__850CE873
#define __TRACE_H__850CE873

#include 
#include 
#include 
#include 

#ifdef _DEBUG
#define TRACEMAXSTRING  1024

char szBuffer[TRACEMAXSTRING];
inline void TRACE(const char* format,...)
{
    va_list args;
    va_start(args,format);
    int nBuf;
    nBuf = _vsnprintf(szBuffer,
                   TRACEMAXSTRING,
                   format,
                   args);
    va_end(args);

    _RPT0(_CRT_WARN,szBuffer);
}
#define TRACEF _snprintf(szBuffer,TRACEMAXSTRING,"%s(%d): ", \
                &strrchr(__FILE__,'\\')[1],__LINE__); \
                _RPT0(_CRT_WARN,szBuffer); \
                TRACE
#else
// Remove for release mode
#define TRACE  ((void)0)
#define TRACEF ((void)0)
#endif

#endif // __TRACE_H__850CE873

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有