中国开发网: 论坛: 程序员情感CBD: 贴子 176599
bjwf
不是这么简单,大概是这样的.
#define TRACE ATLTRACE
.......

#define ALTTRACE ATL::CTraceFileAndLineInfo(__FILE__, __LINE__)

....

namespace ATL
{

....
class CTraceFileAndLineInfo
{
CTraceFileAndLineInfo(const char *pszFileName, int nLineNo)
: m_pszFileName(pszFileName), m_nLineNo(nLineNo)
{}

//关键是下面这几个对()的重载
void __cdecl operator()(DWORD_PTR dwCategory, UINT nLevel, const char *pszFmt, ...) const
{
va_list ptr; va_start(ptr, pszFmt);
ATL::CTrace::s_trace.TraceV(m_pszFileName, m_nLineNo, dwCategory, nLevel, pszFmt, ptr);
va_end(ptr);
}
void __cdecl operator()(DWORD_PTR dwCategory, UINT nLevel, const wchar_t *pszFmt, ...) const
{
va_list ptr; va_start(ptr, pszFmt);
ATL::CTrace::s_trace.TraceV(m_pszFileName, m_nLineNo, dwCategory, nLevel, pszFmt, ptr);
va_end(ptr);
}
void __cdecl operator()(const char *pszFmt, ...) const
{
va_list ptr; va_start(ptr, pszFmt);
ATL::CTrace::s_trace.TraceV(m_pszFileName, m_nLineNo, atlTraceGeneral, 0, pszFmt, ptr);
va_end(ptr);
}
void __cdecl operator()(const wchar_t *pszFmt, ...) const
{
va_list ptr; va_start(ptr, pszFmt);
ATL::CTrace::s_trace.TraceV(m_pszFileName, m_nLineNo, atlTraceGeneral, 0, pszFmt, ptr);
va_end(ptr);
}

}
}
试图在互联网上划出国界的举动是愚蠢的!!!
把人当成猪羊圈养,草料永远都不够!把人当人待,人有无限的创造力! “人口减少一半,人们两倍富有”的观念为“一种非常糟糕的自甘堕落—这背后的潜台词是,似乎中国人是封闭围栏中的动物,对周围那些自己赖以生存的资源,除了咀嚼,别无办法。”

我的像册:http://picasaweb.google.com/bjwf2000/
我的主页: http://bjwf2000.googlepages.com/

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录