none
TRACE宏的输出问题 RRS feed

  • 问题

  •   最近被TRACE宏的一个问题弄得很郁闷,经过测试,在UNICODE编码环境下,TRACE无法正常输出包含中文的字符串,e.g

    Code Snippet

    TCHAR *lpszKC _T("ssssssssssssssssssss现在进行中文测试");
      

      
    OutputDebugString(lpszKC);
      
    TRACE(_T("\n%s"), lpszKC);

     

     

    只能输出前面的sss...的部分,后面中文就无法被输出。但是在MBCS编码环境下却正常,请问这是哪里的问题? ps:我对TRACE跟进后,发现其实是AfxTrace,里面MS是使用AfxDump转储。具体不知道哪里出了问题~
    2009年1月15日 12:47

答案

  • 你的代码的行为和文件的保存编码有关。如果你要确保代码不受文件保存编码影响,将字符串保存在资源中而不是源代码中。
    2009年1月15日 18:59
    版主

全部回复

  • 你的代码的行为和文件的保存编码有关。如果你要确保代码不受文件保存编码影响,将字符串保存在资源中而不是源代码中。
    2009年1月15日 18:59
    版主
  •  

    ?不是听得很明白。
    我一直都是在UNICODE编码下,而且字符串都有加_T()进行UNICODE化,而且发现基本上只有使用TRACE的时候才会出现这个情况
    2009年1月16日 4:54
  • 将TRACE提示部分字符串放在资源里。
    2009年1月16日 5:43
    版主