void 类名::ReadData() { CStdioFile file; CFileException exp;
char* old_locale=_strdup(setlocale(LC_CTYPE,NULL) ); setlocale( LC_CTYPE,"chs");
if(file.Open(_T("c:\\MiniMenu.mnu"),CFile::typeText|CFile::modeRead,&exp) == FALSE) { CString sMsg; exp.GetErrorMessage(sMsg.GetBuffer(1024),1024); sMsg.ReleaseBuffer(); MessageBox(sMsg,_T("错误"),MB_OK|MB_ICONERROR); } CString sValue; while(file.ReadString(sValue)) { …… }
setlocale( LC_CTYPE, old_locale ); //还原语言区域的设置 free( old_locale );//还原区域设定 }
因为还涉及到了中文的显示不是乱码所以还要加上头文件:#include <locale.h>