rtvs2010 
c++非mfc的dll,用不了TRACE.
我知道_CrtSetReportFile可以将STDOUT的内容重定位到文件中,但我不知道vs2010那个output窗口到底和什么文件关联。
求提示!

解决方案 »

  1.   

    简单的办法写成TXT文本保存下来
      

  2.   

    OutputDebugString输出调试信息,可以使用DebugView工具查看。
      

  3.   

    为什么用不了TRACE? 任何方式(API、ATL、MFC、WTL)都可以用TRACE将信息输出到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)
      

  4.   

    用法举例:
    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); 
      

  5.   

     System.Diagnostics.Debug.WriteLine()