一个LPCTSTR门类的变量pszOutput, 用TRACE("%s" pszOutput)可以正常打印, 但是SetWindowText显示为乱码

一个LPCTSTR类型的变量pszOutput, 用TRACE("%s", pszOutput)可以正常打印, 但是SetWindowText显示为乱码
函数如下:

void CDemoRedirector::WriteStdOut(LPCTSTR pszOutput)
{

  TRACE("%s", pszOutput);
   
  if (m_pWnd != NULL)
  {
  m_pWnd->SetWindowText(pszOutput);
  }
}

传进来时是
TCHAR szOutput[256];
DWORD dwRead = 0;
if (!::ReadFile(m_hStdoutRead, szOutput, min(256, dwAvail),
&dwRead, NULL) || !dwRead) // error, the child might ended
break;

WriteStdOut(szOutput);

TRACE中可以正常打印出中英文, 但是SetWindowText中显示的全是乱码, 改如何修改?

------解决方案--------------------
TCHAR szOutput[256];
memset(szOutput,0,256);// 先置好 0;sz
------解决方案--------------------
是不是有中文啥的,资源的语言是不是和字符串语言不匹配?
------解决方案--------------------
这样呢? 

C/C++ code

CHAR szOutput[256] = {0};
DWORD dwRead = 0;
if (!::ReadFile(m_hStdoutRead, szOutput, min(256, dwAvail),
&dwRead, NULL) || !dwRead) // error, the child might ended
break;

WriteStdOut(CString(szOutput));

------解决方案--------------------
T类型的是跟据你的项目设置是否是Unicocde来决定倒底是Char,还是Wchar,而File里的内容不会跟据项目变化,那上死的。你需要跟据File的编码来正确编码你的字符串设置到窗口上。
------解决方案--------------------
汉字被拆分了!
min(256, dwAvail)不能保证汉字的完整性。

------解决方案--------------------
才回答了一个帖:
http://topic.****.net/u/20120528/08/341bd19b-1ef9-4709-84be-9d96dea4d7b9.html