Trace宏如何输出CString
为什么直接输出就会出现_CrtDbgReport: String too long or IO Error这个东西。
具体该怎么做呢?

解决方案 »

  1.   

    不行再换换下面的
    TRACE0("SSS");
    TRACE0(_T(""));
      

  2.   

    CString str(_T("abc"));
    TRACE1( "%s\n", str );
      

  3.   

    试试改用 OutputDebugString 或 OutputDebugStringW 输出 
      

  4.   


    改成TRACE1( "%ws\n", str );
      

  5.   

    我也正是遇到了这个问题
    vs2008下,过去好像没有遇到过,今天突然遇到:unsigned long lm = 5;
    TRACE( TEXT("跳到%d帧\n"), lm );在运行时,打印:
    _CrtDbgReport: String too long or IO Error
      

  6.   

    在初始化时调用setlocale函数。
    例如
    #include <locale.h>
    BOOL CApp::InitInstance()
    {
      .....
      #if defined(_DEBUG)
        
      #endif
    }
    通过查询MSDN可以获知chinese参数为:具体不列出,可以查找MSDN
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vccrt/html/bbee63b1-af0b-4e44-9eaf-dd3e265c05fd.htm如果不知填充什么,可以简单的设置 _tsetlocale(LC_ALL, _T(""));
      

  7.   

    不好意思,刚刚把函数剪切掉了,补充如下:
    在初始化时调用setlocale函数。
    例如
    #include <locale.h>
    BOOL CApp::InitInstance()
    {
      .....
      #if defined(_DEBUG)
        _tsetlocale(LC_ALL, _T("chinese"));
      #endif
    }
    通过查询MSDN可以获知chinese参数为:具体不列出,可以查找MSDN
    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vccrt/html/bbee63b1-af0b-4e44-9eaf-dd3e265c05fd.htm如果不知填充什么,可以简单的设置 _tsetlocale(LC_ALL, _T(""));