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

char* -> LPCWSTR - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Tilk
 Аватар для Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
13.10.2010, 04:41     char* -> LPCWSTR #1
Всем доброго времени суток.

Пытаюсь перевести char* строчку (строка текста переменной длины). Собственно код:

C++
1
2
3
4
5
6
7
char* LastChar;
LPWSTR result;
 
//...
 
MultiByteToWideChar(CP_ACP, 0, LastChar, 1, result, sizeof(result)/sizeof(WCHAR));  
Text.PrintText(5, 2, result);
А на старте проекта, еще в конструкторе общего класса задаю LastChar ручками.
C++
1
    LastChar = "g";
Компилятор не ругается, но на выходе ничего не вижу. С выводом текста все в порядке, т.к. если убрать MultiByteToWideChar и сделать это:
C++
1
result = L"g"
то текст вижу.

Мне это нужно для того, чтобы обрабатывать сообщение WM_CHAR и реализовать набор строки текста с клавиатуры в рамках своей функции вывода текста. Таким образом макросы _T, L и TEXT(), которые так выручали раньше в этот раз не подходят. Как тут быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2010, 04:41     char* -> LPCWSTR
Посмотрите здесь:

Невозможно преобразовать параметр 1 из 'const char [15]' в 'LPCWSTR' C++
невозможно преобразовать параметр 1 из "const char [8]" в "LPCWSTR" C++
Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' C++
Побороть LPCWSTR C++
C++ wchar_t to LPCWSTR
аргумент типа "char *" несовместим с параметром типа "LPCWSTR" C++
C++ Как преобразовать LPCWSTR в char*?
Ошибка: argument of type "char *" is incompatible with parameter of type "LPCWSTR" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
13.10.2010, 10:22     char* -> LPCWSTR #2
Так попробуйте.
WCHAR result[32]; //размер на свой выбор.

Добавлено через 11 минут
LPWSTR result; //это указатель на строку типа WCHAR.
Для перевода в строку требуется выделенная память.
В указателе result должен быть адрес выделенной памяти.
Tilk
 Аватар для Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
13.10.2010, 13:10  [ТС]     char* -> LPCWSTR #3
Genius Ignat
Ага, помогло. Уже который раз забываю память выделять, работая с char*. Большое спасибо.
Yandex
Объявления
13.10.2010, 13:10     char* -> LPCWSTR
Ответ Создать тему
Опции темы

Текущее время: 00:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru