佚名通过本文主要向大家介绍了
急问:为何在单独创建的MFCexe程序中可以读到文件的内容,而同样的代码在com插件程序中读到的是乱码?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 急问:为何在单独创建的MFC exe程序中可以读到文件的内容,而同样的代码在com插件程序中读到的是乱码?
描述:
解决方案1:
描述:
代码段如下:
//read the Rule file into buff
CFile file(_T("e:\\Chinese_rules.txt"),CFile::modeRead);
DWORD len=file.GetLength();
TCHAR* str=new TCHAR[len];
file.Read(str,len);
CString buff(str);
AfxMessageBox(buff);
解决方案1:
你读的是文本文件吧?不是二进制文件对么?您碰到的问题是关于Unicode的,乱码代表您已经读出了文件内容,只是您的文件原本不是Unicode编码的,很可能是ASCII,这样您使用Unicode编码自然就出错了。您可以使用下面这个函数把读出的字符变成Unicode编码:
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
您试一试,应该就可以了。