非unicode程序的语言改变ini阅读

时间:2011-05-16 16:23:19

标签: c++ mfc atl ini bstr

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

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

我必须将此设置保留为中文,因为当为“非Unicode程序的语言”选择英语时,CComBSTR.LoadString无法正常工作,它会将资源DLL中的中文字符作为问号加载。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

迈克尔卡普兰explains。解决方案是使用Unicode INI文件,这些文件不依赖于“非unicode程序的语言”。

答案 1 :(得分:0)

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