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