模块一多,调试起来就麻烦。为了在输出的调试信息前统一加上前缀,如模块名以区分不同模块输出的信息。可以通过在stdafx.h文件中添加以下代码实现:
#ifndef MODULETAG
#define MODULETAG "ModuleName!"
#endif
#ifdef TRACE
#undef TRACE
#define TRACE(sz, ...) ATLTRACE(MODULETAG##"%s(%d): "##sz, __FUNCTION__, __LINE__, __VA_ARGS__)
#endif // TRACE
#ifdef TRACE0
#undef TRACE0
#define TRACE0(sz) ATLTRACE(_T(MODULETAG)##_T("%s(%d): %s"), __FUNCTION__, __LINE__, _T(sz))
#endif // TRACE0
#ifdef TRACE1
#undef TRACE1
#define TRACE1(sz, p1) ATLTRACE(_T(MODULETAG)##_T("%s(%d): ")##_T(sz), __FUNCTION__, __LINE__, p1)
#endif // TRACE1
#ifdef TRACE2
#undef TRACE2
#define TRACE2(sz, p1, p2) ATLTRACE(_T(MODULETAG)##_T("%s(%d): ")##_T(sz), __FUNCTION__, __LINE__, p1, p2)
#endif // TRACE2
#ifdef TRACE3
#undef TRACE3
#define TRACE3(sz, p1, p2, p3) ATLTRACE(_T(MODULETAG)##_T("%s(%d): ")##_T(sz), __FUNCTION__, __LINE__, p1, p2, p3)
#endif // TRACE3
我的模块名是ModuleName为模块名,这样打印的调试信息中就都加上了了前缀ModuleName!了,看起来也舒服多了。