非 unicode 程序的语言更改 ini 读取
我有一个非 unicode 应用程序,它使用 unicode 版本的 ini 读取函数,例如 GetPrivateProfileSectionW 和 GetPrivateProfileStringW。当“非 unicode 程序的语言”设置为英语时,该程序运行良好。
当我将此设置更改为中文(中国)时,函数 GetPrivateProfileSectionW 和 GetPrivateProfileStringW 返回 null。
我必须将此设置保留为中文,因为当“非unicode程序的语言”选择英文时,CComBSTR.LoadString无法按预期工作,它将资源DLL中的中文字符作为问号加载。
有什么想法吗?
谢谢。
I've a non-unicode application which is using unicode versions of the ini reading functions like GetPrivateProfileSectionW and GetPrivateProfileStringW. The program is working well when "Language for non-unicode programs" is set to English.
When I change this setting to Chinese (PRC), the functions GetPrivateProfileSectionW and GetPrivateProfileStringW return null.
I must keep this setting at Chinese, because when English is selected for "Language for non-unicode programs", CComBSTR.LoadString is not working as expected, it loads the Chinese characters in a resource DLL as question marks.
Any ideas?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
迈克尔·卡普兰解释。解决方案是使用 Unicode INI 文件,它不依赖于“非 unicode 程序的语言”。
Michael Kaplan explains. The solution is to use Unicode INI files, which don't depend on the "Language for non-unicode programs".
“非 Unicode 程序的语言”还选择文件使用的默认代码页。美国英语通常是 Windows-1252。中文会有所不同,比如 GB2312 或 GBK。使用记事本打开 .INI 文件并将其保存为“ANSI”格式,这将是 Microsoft 对于所选非 Unicode 语言的默认格式。
The "Language for non-Unicode programs" also selects the default code page used for files. US English is usually Windows-1252. Chinese will be something different, like GB2312 or GBK. Open your .INI file with Notepad and save it with the "ANSI" format, which will be whatever Microsoft's default for the non-Unicode language selected.