CFileDialog cfd(TRUE);
cfd.m_ofn.lpstrTitle=L"打开文本文件";
cfd.m_ofn.lpstrFilter=L"文本文件(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0\0";
if(IDOK == cfd.DoModal())
 {
CFile file(cfd.GetPathName(),CFile::modeRead);
wchar_t *pbuf;
ULONGLONG len;
len=file.GetLength()+1;
pbuf=new wchar_t[len];
pbuf[len]=0;
file.Read(pbuf,len);
file.Close();
MessageBox(pbuf);点击导入按钮,显示乱码,不知道哪里出错,请指点

解决方案 »

  1.   

    你这个文件不是unicode吧?把它另存为unicode.
      

  2.   

    pbuf=new wchar_t[len]; 
    pbuf[len]=0;//越界了,改成pbuf[len-1]=0;
      

  3.   

    建议你用TCHAR。你这样用。很容易混淆。
      

  4.   

    2楼的朋友,谢谢,存成UNICODE真就好使了.同时谢谢楼下的朋友解答,对我很有帮助
      

  5.   

    改成Unicode 3楼的问题就解决了么?pbuf=new wchar_t[len]; 
    pbuf[len]=0;//越界了,改成pbuf[len-1]=0;
      

  6.   

    改成Unicode ,问题解决了,MessageBox弹出框不乱码了