0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 13
|
||||||
1 | ||||||
MessageBox выводит вместо русских символов иероглифы02.04.2016, 17:24. Показов 5223. Ответов 11
Метки нет Все метки)
(
Пробовал переключать юникод, пробовал подключать <Tchar.h>. И MessageBoxW, тоже не помогает.
Итог один либо выводит шифр в MessageBox, либо не может перевести char в LPCSTR или в LPCWSTR. вот код который я пробую.
0
|
|
02.04.2016, 17:24 | |
Ответы с готовыми решениями:
11
Вместо надписи иероглифы в заголовке окна Выводятся иероглифы вместо нормального текста Чтение файла: иероглифы вместо данных Выводит иероглифы вместо русских букв |
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
|||||||||||
02.04.2016, 17:53 | 2 | ||||||||||
Вам нужен MessageBoxW, а для этого нужно из char* сделать wchar_t*:
0
|
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 13
|
||||||
02.04.2016, 18:19 [ТС] | 3 | |||||
Я только начинаю изучать C++
написал так.
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
|
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
||||||
02.04.2016, 18:38 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 13
|
|
02.04.2016, 18:45 [ТС] | 5 |
Cuellius , это должно работать? дело в том что ошибка осталась :/
error C2664: "int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)": невозможно преобразовать аргумент 3 из "const char [1]" в "LPCWSTR" 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
0
|
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
||||||
02.04.2016, 19:16 | 6 | |||||
У меня все работает. Какой компилятор, версия, параматры компиляции?
Можно попробовать так:
0
|
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 13
|
|
02.04.2016, 20:06 [ТС] | 7 |
все же не работает
ошибка другая Код
error C4996: 'mbstowcs': This function or variable may be unsafe. Consider using mbstowcs_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> c:\programs\microsoft visual studio 12.0\vc\include\stdlib.h(528): см. объявление "mbstowcs" версия 12.0.210051.1 REL параметры стандартные Добавлено через 15 минут да забыл сказать, юникод поставил не заданным, такая ошибка в коде и из поста№6 и в коде поста № 4. Добавлено через 13 минут до инклудов написал #define _CRT_SECURE_NO_WARNINGS ошибки нет, но и русских символов тоже. Вроде символы поменялись, но все равно зашифрованны.
0
|
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
|
02.04.2016, 20:23 | 8 |
Так у вас включен SDL (Security Develop Lifecycle), его надо отключить в настройках проекта (Да и вообще, всегда его отключайте!):
Project Properties (1) -> Configuration Properties (2) > C/C++ (3) > General (4) > SDL checks (5) [поставьте No] Картинка для пояснения:
0
|
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
||||||
02.04.2016, 20:28 | 9 | |||||
Я посмотрел, там используется кодировка UTF-8, её нужно перевести в юникод.
Добавлено через 3 минуты
0
|
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 13
|
||||||
02.04.2016, 20:42 [ТС] | 10 | |||||
Cuellius, спасибо!) продвигаюсь потехоньку)
нашел функцию для преобразования utf8_to_unicode(char *utf8_string) где используется MultiByteToWideChar . Использовал в коде.
0
|
193 / 100 / 131
Регистрация: 23.06.2015
Сообщений: 249
|
||||||
02.04.2016, 22:46 | 11 | |||||
0
|
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 13
|
|
02.04.2016, 23:00 [ТС] | 12 |
Cuellius, Ё МОЁ!)) Работает!)) Так надо разобраться в коде, но уже могу сказать СПАСИБО БОЛЬШОЕ!!!! НУ ОГРОМНОЕ ПРОСТО!))
0
|
02.04.2016, 23:00 | |
Помогаю со студенческими работами здесь
12
В geany (.pas) вместо русских букв выводит иероглифы Вместо русских символов отображаются иероглифы Иероглифы �, вместо русских символов Иероглифы вместо русских символов. (UTF8 не помогает) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |