Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
#1

Unicode - указатели на строки - C++

02.05.2011, 15:38. Просмотров 612. Ответов 2
Метки нет (Все метки)

Добрый день!
Работаю в VS 2010. Для начала приведу вырезку из кода:
C++
1
2
3
4
5
6
7
void Rational::errorMsg() const
{
    //MessageBox(HWND_DESKTOP,(LPCWSTR)((void*)"Division by zero!"),(LPCWSTR)((void*)"Warning!"),MB_OK);
    //MessageBox(HWND_DESKTOP,reinterpret_cast<LPCWSTR>("Division by zero!"),reinterpret_cast<LPCWSTR>("Warning!"),MB_OK);
    std::cout<<"Division by zero!\n";
    return;
}
При работе обоих MessageBox(...) сообщение выводится, но с иероглифами. На сколько я понимаю, дело в Unicode преобразованиях, могу, конечно, ошибаться. Если не пользоваться явными приведениями типов, то компилятор "ругается" (приведение к LPCWSTR - const char [16]).
Объясните, пожалуйста, без дальнейших вопросов, что происходит.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 15:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Unicode - указатели на строки (C++):

Формат строки в кодировке Unicode? - C++
Какой формат соответствует строке в кодировке UNICODE?

Как выводить строки в unicode? - C++
почему не выводит на экран строки в формате unicode? в win32 прикрасно работает, а в консоле не выводит... #include &lt;iostream&gt; #include...

Указатели.Строки и указатели - C++
Вот условия ввода строки:Вводить и обрабатывать строки в цикле до тех пор пока первый символ не пробел Условия обработки строки: ...

Указатели и указатели на указатели, а также типы данных - C++
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Указатели и строки - C++
1. В коде есть такой кусок: sc = stack.pop(); printf(&quot;#%s %d#&quot;, &amp;sc, sc); sc имеет тип unsigned int, понятно что там хранится...

Строки и указатели в C++ - C++
Проверить правильность расположения в тексте круглых скобок (количество открывающихся и закрывающихся скобок должно совпадать). Пользуясь...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 16:06 #2
C++
1
L"message"
1
Ma3a
Эксперт C++
617 / 461 / 31
Регистрация: 28.01.2011
Сообщений: 605
02.05.2011, 17:32 #3
alexsvk, иероглифы выводятся потому что вы не так делаете преобразование строк. Обычная стоковая константа имеет тип char const *, каждый символ по одному байту обычно. Естественно, заставляя компилятор считать, что набор однобайтовых символов -- это юникод-строка(где каждый символ по 2 байта или 4, в зависимости от платформы), из нескольких однобайтовых символов он лепит один, вот и выходит непонятно что. Как уже было указано, чтобы создать строковую константу unicode формата, надо добавить буковку L впереди, тогда константа будет иметь тип wchar_t const *, что уже без проблем можно преобразовать в LPCWSTR.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2011, 17:32
Привет! Вот еще темы с ответами:

Указатели на строки - C++
Доброго всем времени суток! Не понимаю почему указатели на строки возвращают всю строку char может содержать только один символ в...

Строки и указатели........ - C++
Помогите написать прогу с помощью которой - вводится имя,фамилия,отчество а вывоится фамилия и инициалы то есть - Пушкин Александр...

Указатели на строки - C++
Есть следующий код: class Strings // класс с указателями на строки (размер которого равен 8) { public: char* str1; ...

Строки и указатели - C++
Выполнить задание двумя способами используя индексы и используя указатели при работе со строками. Удалить в строке все буквы “b”,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru