C++ 非unicode程序的语言更改ini读取

C++ 非unicode程序的语言更改ini读取,c++,mfc,atl,ini,bstr,C++,Mfc,Atl,Ini,Bstr,我有一个非unicode应用程序,它使用unicode版本的ini读取函数,如GetPrivateProfileSectionW和GetPrivateProfileStringW。当“非unicode程序的语言”设置为英语时,该程序运行良好 当我将此设置更改为中文(PRC)时,函数GetPrivateProfileSectionW和GetPrivateProfileStringW返回null 我必须将此设置保持为中文,因为当为“非unicode程序的语言”选择英文时,ccomstr.LoadSt

我有一个非unicode应用程序,它使用unicode版本的ini读取函数,如GetPrivateProfileSectionW和GetPrivateProfileStringW。当“非unicode程序的语言”设置为英语时,该程序运行良好

当我将此设置更改为中文(PRC)时,函数GetPrivateProfileSectionW和GetPrivateProfileStringW返回null

我必须将此设置保持为中文,因为当为“非unicode程序的语言”选择英文时,ccomstr.LoadString无法按预期工作,它会将资源DLL中的中文字符作为问号加载

有什么想法吗

谢谢。

非Unicode程序的语言也会选择用于文件的默认代码页。美国英语通常是Windows-1252。中文会有些不同,比如GB2312或GBK。用记事本打开.INI文件,并将其保存为“ANSI”格式,这将是所选非Unicode语言的Microsoft默认格式。

Michael Kaplan。解决方案是使用Unicode INI文件,它不依赖于“非Unicode程序的语言”