CString::LoadString и Regional options
От: prozaeck  
Дата: 19.02.10 17:39
Оценка:
Имеется тестовое приложение с MFC, не unicode
Имеется код:
    CString    str;
    str.LoadString ( IDS_TEST1 );

IDS_TEST1 — строка на русском.

Код работает.
Идем в панель управления, Regional and language options, Закладка Regional options (первая), в верхнем комбобоксе выбираем латышский язык (Latvian).

Теперь в str загружаются знаки вопроса.

1. Это что, так и должно быть?

Отладка показала, что лажает функция WideCharToMultiByte. Похоже, строки в ресурсах хранятся в двухбайтовой кодировке, и эта функция должна их законвертить в однобайтовую. Видимо она не может найти двухбайтовые коды русских символов в латышской таблице, и поэтому заменяет их вопросами.

2. Как с этим бороться?
::setlocale( LC_ALL, "Russian_Russia.ACP" );

не помогает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.