前几天玩系统玩大了,崩溃了就顺势换了WIN8,结果VC6每次调试,一单步就出错
调试欢乐多
sText.ReleaseBuffer();
m_reText.SetWindowText(sText);
是不是pText里的数据没有赋给sText,也许VS2012并没有把pText的值传给sText,你单步执行看看这两个变量的值是不是一样,要确定pText读的数据没问题
Windows内核和MFC的Unicode是UTF-16 little endian,而文本文件一般多是UTF-8或者ANSI编码(比如GBK+ASCII)的。
对付文本的话CStdioFile或C++的Stream、C的fopen文本一般会好一些。
不建议用CString来读文件,因为它受工程编码的影响。最好指明用CStringW或者CStringA。
然后再把它赋值给CString。比如CString sText = (CStringA) rText;
CString会自动转换编码,这时是适合SetWindowText的。
最好用CStdioFile,如果你要读的文件是ANSI的,请务必设置Locale,像这样
http://st251256589.blog.163.com/blog/static/16487644920115803313153/
这样CStdioFile才能将ANSI正确转换为UTF-16。
另外你用的是不是英文版的系统或者英文版的VC?
你在控制面板里最好设置区域设置为“China”,而且非Unicode程序编码设置为中文