Язык для не-Unicode программ меняет чтение ini
У меня есть не-Unicode-приложение, которое использует Unicode-версии функций чтения ini, таких как GetPrivateProfileSectionW и GetPrivateProfileStringW. Программа работает хорошо, когда "Язык для не-Unicode программ" установлен на английский.
Когда я изменяю этот параметр на китайский (PRC), функции GetPrivateProfileSectionW и GetPrivateProfileStringW возвращают ноль.
Я должен сохранить этот параметр на китайском, потому что, если для "Язык для программ, не поддерживающих Юникод" выбран английский язык, CComBSTR.LoadString не работает должным образом, он загружает китайские символы в DLL-библиотеке ресурсов в виде вопросительных знаков.
Есть идеи?
Благодарю.
2 ответа
Майкл Каплан объясняет. Решением является использование INI-файлов Unicode, которые не зависят от "Языка для программ, не поддерживающих Unicode".
"Язык программ, не поддерживающих Юникод", также выбирает кодовую страницу по умолчанию, используемую для файлов. Американский английский обычно Windows-1252. Китайский будет чем-то другим, например, GB2312 или GBK. Откройте файл.INI с помощью Блокнота и сохраните его в формате "ANSI", который будет использоваться Microsoft по умолчанию для выбранного языка, отличного от Unicode.