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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
#1

char* -> LPCWSTR - C++

13.10.2010, 04:41. Просмотров 2655. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток.

Пытаюсь перевести 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
Посмотрите здесь:

Как преобразовать LPCWSTR в char*? - C++
Здравствуйте! Как преобразовать LPCWSTR в char*?

Невозможно преобразовать параметр 1 из 'const char [15]' в 'LPCWSTR' - C++
с сайта скачала прогу которая должна рисовать сферу, но при компилировании выходит ошибка:error C2664: auxInitWindowW: невозможно...

Исправить ошибку cannot convert parameter 1 from 'const char [15]' to 'LPCWSTR' (CopyFile) - C++
Народ, помогите, не могу разобраться с "CopyFile(LPCTSTR fromName, LPCTSTR toName, BOOL failIfExists);". Вопрос таков: почему при...

Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' - C++
выдает вот такую ошибку - Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR' использую visual...

Ошибка: argument of type "char *" is incompatible with parameter of type "LPCWSTR" - C++
Помогите, пожалуйста, исправить ошибку в программе. #include <iostream> #include "stdio.h" #include "windows.h" #include <conio.h> ...

Аргумент типа "char *" несовместим с параметром типа "LPCWSTR" - C++
Что такое и с чем его едят 1 IntelliSense: аргумент типа "char *" несовместим с параметром типа...

String и LPCWSTR - C++
Здравствуйте, есть функция, показывающая дату создания файла и есть такая строчка: LPCWSTR fname1 = L"test.txt"; Дело в том, что в...

String в LPCWSTR - C++
В общем сложил как правильно строку(для пути проверки папки),но теперь не могу её записать в CreateDirectory.Помогите с проблемой. ...

wchar_t to LPCWSTR - C++
Ругается, что text является неинициализированной локальной переменной #include "stdafx.h" #include <iostream> #include <Windows.h>...

Побороть LPCWSTR - C++
Всем привет. Пишу программку на WinApi но столкнулся с простой проблемой. Мне нужно программно вставить текст в Edit. Код примерно такой: ...


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

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

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

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