rtvs2010
c++非mfc的dll,用不了TRACE.
我知道_CrtSetReportFile可以将STDOUT的内容重定位到文件中,但我不知道vs2010那个output窗口到底和什么文件关联。
求提示!
c++非mfc的dll,用不了TRACE.
我知道_CrtSetReportFile可以将STDOUT的内容重定位到文件中,但我不知道vs2010那个output窗口到底和什么文件关联。
求提示!
把下面的代码放在你的.H文件里即可。用法:
ASSERT(表达式) 等同于 MFC 的 assert
ODS(表达式) 等同于MFC的 trace
////////////////////////////////////////////////////////////////////////
// Debug macros
//
#ifdef _DEBUG#define ASSERT(x) if(!(x)) DebugBreak()
#define ODS(x) OutputDebugString(x)#define TRACE1(sz, arg1) { \
CHAR ach[1024]; \
wsprintf(ach, (sz), (arg1)); \
ODS(ach); }#define TRACE2(sz, arg1, arg2) { \
CHAR ach[1024]; \
wsprintf(ach, (sz), (arg1), (arg2)); \
ODS(ach); }#define TRACE3(sz, arg1, arg2, arg3) { \
CHAR ach[1024]; \
wsprintf(ach, (sz), (arg1), (arg2), (arg3)); \
ODS(ach); }#define TRACE_LPRECT(sz, lprc) { \
CHAR ach[1024]; \
wsprintf(ach, "RECT %s - left=%d, top=%d, right=%d, bottom=%d\n", \
(sz), (lprc)->left, (lprc)->top, (lprc)->right, (lprc)->bottom); \
ODS(ach); }#else // !defined(_DEBUG)#define ASSERT(x)
#define ODS(x)
#define TRACE1(sz, arg1)
#define TRACE2(sz, arg1, arg2)
#define TRACE3(sz, arg1, arg2, arg3)
#define TRACE_LPRECT(sz, lprc)#endif // (_DEBUG)
assert:ASSERT(!(m_pole));
ASSERT(m_pole);
ASSERT(vtT[0].vt == VT_DISPATCH);trace:ODS("CDocObject::~CDocObject\n");
TRACE1("CClassFactory::AddRef - %d\n", m_cRef+1);
TRACE2(" fModalState=%d, fNoInteractive=%d\n", m_fModalState, m_fNoInteractive);
TRACE3(" fAppActive=%d, fUIActive=%d, fCompActive=%d\n", m_fAppActive, m_fUIActive, m_fComponentActive);
TRACE_LPRECT("prcBorder", prcBorder);