powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / LPWSTR to LPSTR
6 сообщений из 6, страница 1 из 1
LPWSTR to LPSTR
    #33687799
TaReN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как можно перевести LPWSTR в LPSTR
Код: plaintext
1.
2.
3.
4.
LPSTR str;
LPWSTR wstr="123456789";
str = CW2A(wstr);
wstr = CA2W(str);
MessageBox(NULL,PathFilePr,TEXT(""), 0 );
Такая манипуляция выводит пустую строку.
Заранее благодарен за ответ
-=<TaReN>=-
...
Рейтинг: 0 / 0
LPWSTR to LPSTR
    #33687864
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может надо:
LPWSTR wstr= L "123456789";
Есть еще API-функция WideCharToMiltiByte...
...
Рейтинг: 0 / 0
LPWSTR to LPSTR
    #33687886
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  char   str[ 1024 ];
  LPWSTR wstr = L"ЙЦУКЕН";

  WideCharToMultiByte(
     CP_ACP
   ,  0 
   , wstr
   , - 1 
   , str
   ,  1023 
   ,  0 
   ,  0 
  );

  MessageBoxA( 0 ,str,"", 0 );
...
Рейтинг: 0 / 0
LPWSTR to LPSTR
    #33687937
TaReN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пасиб все работет
Только вопросик маленький:
Почему объявляешь строку длиной 1024
Код: plaintext
char   str[ 1024 ];
а при конвертации используешь 1023
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
WideCharToMultiByte(
     CP_ACP
   ,  0 
   , wstr
   , - 1 
   , str
   ,  1023 
   ,  0 
   ,  0 
  );
???
-=<TaReN>=-
...
Рейтинг: 0 / 0
LPWSTR to LPSTR
    #33687961
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для строкового терминатора '\0'
...
Рейтинг: 0 / 0
LPWSTR to LPSTR
    #33688016
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поскольку шестой параметр в этой ф-ции:
MSDN
cbMultiByte
[in] Specifies the size, in bytes, of the buffer pointed to by the lpMultiByteStr parameter. If this value is zero, the function returns the number of bytes required for the buffer. (In this case, the lpMultiByteStr buffer is not used.)

, то все-таки правильнее будет 1024 .
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / LPWSTR to LPSTR
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]