![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| samtron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 11.4.2009 Репутация: нет Всего: нет |
День добрый, написал свой поиск, но он считывает только ASCII, т.е. английские буквы, а русские буквы, т.е. Unicode не считывает.
Я использовал сообщение WM_CHAR, а после решил WM_UNICHAR, но компилятор(Visual Studio 2005) пишет: "error C2065: 'WM_UNICHAR' : undeclared identifier". Я глянул справку в msdn http://msdn.microsoft.com/en-us/library/ms646288(VS.85).aspx, но нужный заголовочный файл подключен: #include <windows.h>. Буду признателен за помощь. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
русские буквы могут быть не только юникодными !!!
а не известен скорее всего из за того что надо установить при компиляции что будешь юзать юникод и тогда станут доступны все юникод ф-ции и переменые -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| samtron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 11.4.2009 Репутация: нет Всего: нет |
В настройках компилятора в графе General->Character Set-> Use Multi-Byte Character Set, компилятор у меня Visual Studio 2005.
Я переставил на Use Unicode Character Set, но ошика "error C2065: 'WM_UNICHAR' : undeclared identifier" все равно есть |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 7 Всего: 146 |
winuser.h
возможно не выполняется условие if (_WIN32_WINNT >= 0x0501) -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а не пробовал раскладку клавиатуры менять перед вводом?
чтобы использовать это сообщение, требуется версия не меньше XP, а чтобы скомпилировать этот код, перед включением windows.h нужно добавить:
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
WM_UNICHAR стоит под #if(_WIN32_WINNT >= 0x0501), так что добавь
|
|||
|
||||
| samtron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 11.4.2009 Репутация: нет Всего: нет |
Спасибо всем за помощь, наиболее простое решение проблемы я получил здесь( http://forum.codenet.ru/showthread.php?p=2...ed=1#post293363 ), там я оставил сообщение WM_CHAR а в коде изменил параметр wParam вот так - switch( (char)wParam ) и все заработало.
|
|||
|
||||
| GremlinProg |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
только потому, что в codenet'е ты показал свой код, а здесь - нет прими к сведению, на пальцах такие проблемы не решаются, а с исходником, ошибка очевидна:
и все это, естественно разные величины разные, потому что русские символы восьмибитные, и старший бит при знаковом преобразовании наследуется здесь очевидно производилось неявное преобразование (WPARAM)(CHAR)'ы', т.е. свитч, в конечном счете, был преобразован примерно к следующему виду:
в то время как wParam = 0x000000FB, что и привело не к тому результату, которого ты ждал -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
| samtron |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 11.4.2009 Репутация: нет Всего: нет |
GremlinProg, спасибо за разьясние, меня это интересовало, но я как-то не стал спрашивать, т.к. не критично
По - поводу кода - полностью с Вами согласен, нужно было привести код |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |