Язык для программ, не поддерживающих юникод, изменить чтение ini

У меня есть приложение, не поддерживающее юникод, которое использует юникодные версии функций чтения ini, таких как GetPrivateProfileSectionW и GetPrivateProfileStringW. Программа работает хорошо, когда для параметра «Язык программ, не поддерживающих Юникод» установлено значение «Английский».

Когда я меняю этот параметр на китайский (КНР), функции GetPrivateProfileSectionW и GetPrivateProfileStringW возвращают значение null.

Я должен оставить этот параметр на китайском языке, потому что, когда английский язык выбран для «Языка для программ, отличных от юникода», CComBSTR.LoadString не работает должным образом, он загружает китайские символы в ресурсную DLL как вопросительные знаки.

Любые идеи?

Спасибо.


person Levent Özyıldırım    schedule 16.05.2011    source источник


Ответы (2)


Майкл Каплан объясняет. Решение состоит в использовании INI-файлов Unicode, которые не зависят от «Языка для программ, отличных от Unicode».

person MSalters    schedule 17.05.2011

«Язык для программ, отличных от Unicode», также выбирает кодовую страницу по умолчанию, используемую для файлов. Американский английский обычно Windows-1252. Китайский будет что-то другое, типа GB2312 или GBK. Откройте файл .INI с помощью Блокнота и сохраните его в формате «ANSI», который будет любым значением по умолчанию Microsoft для выбранного языка, отличного от Unicode.

person Mark Tolonen    schedule 16.05.2011