Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MFC. Меняю локаль потока, но символы с клавиатуры все равно вводятся некорректно.

45K
12 апреля 2010 года
GeddaGabler
12 / / 09.06.2009
Может, кто сталкивался с таким:
Меняю локаль на греческий (были попытки менять ее и в InıtInstance приложения и в InitDialog) таким макаром:
 
Код:
configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
SetThreadLocale(1032);// греческая локаль
setlocale(LC_CTYPE,"Greek_Greece.1253");

Все функции отрабатываются нормально и возвращают положительные ответы.
Меняю в СEdit charset на GREEK_CHARSET, но при печати в нем на греческом символы все равно отображются как ???. Приложение, понятно, c multybyte charecters.

Может, кто сталкивался?
Вот в этой стать пишут, что комбинации SetThreadLocale+setlocale должно хватать для корректной смены локали..
http://www.codeproject.com/KB/locale/CRTSynch.aspx
14
13 апреля 2010 года
Phodopus
3.3K / / 19.06.2008
В виндах еще настройку надо сделать для non-unicode
45K
13 апреля 2010 года
GeddaGabler
12 / / 09.06.2009
Так если сделать настройку, так вроде тогда и локаль потока не нужно менять,и так дефолтная локаль будет такой как нужно... но это ведь не выход, например, если нужно переключаться приложение на ввод на разных языках, каждый раз менять настройку...
Или я что-то путаю?
253
13 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Используй Юникод, зачем тебе MBCS? Всё равно все системные вызовы в NT внутреннее переводятся в него, так что MBCS ещё и медленнее.
45K
13 апреля 2010 года
GeddaGabler
12 / / 09.06.2009
Цитата: Proger_XP
Используй Юникод, зачем тебе MBCS? Всё равно все системные вызовы в NT внутреннее переводятся в него, так что MBCS ещё и медленнее.


У нас должна быть поддержка сразу трех азиатских языков: японского, корейского и китайского, а в юникоде у них некоторые иероглифы представлены как общие, хотя на самом деле -они разные, короче говоря, не совсем корректно выходит.

14
13 апреля 2010 года
Phodopus
3.3K / / 19.06.2008
Странно, куча народу пишет юникод-приложения переведенные на указанные языки и у них с этими иероглифами не так как у вас что ли? Тем более для азиатских языков несколько кодовых страниц бывает (типа упрощенный и традиционный) - может в этом загвоздка?
253
13 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: Phodopus
Странно, куча народу пишет юникод-приложения переведенные на указанные языки и у них с этими иероглифами не так как у вас что ли? Тем более для азиатских языков несколько кодовых страниц бывает (типа упрощенный и традиционный) - может в этом загвоздка?


Мне тоже это кажется странным. Я часто работаю с японским, и единственная известная мне проблема в ошибке в функциях MultiByteToWideChar и наоборот. Описание оишбки по-моему даже на MSDN было.

Плюс, как я уже писал выше, т.к. внутри всё в Юникоде, то какая выгода вам от MBCS, если он переводится в него же?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог