@tigmen

GetWindowText() записывает в массив char'ов через символ, как решить?

код:
char msg[256];
 GetWindowText(obj.hEDIT,(LPWSTR)&msg, sizeof(msg));
 //SendMessage(obj.hEDIT, EM_GETLINE, 0,(LPARAM)(LPSTR)msg);
 servermessage(msg);
 SendMessage(obj.hListBox, LB_ADDSTRING, 0, (LPARAM)(LPCSTR)msg);

servermessage():
int s = sizeof(msg);
send(hconnect, msg, s, NULL);
return 0;

вот так видит массив msg отладка visual studio:
61facf12b2831475404775.jpeg
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
GetWindowText() записывает в массив char'ов через символ
GetWindowText(obj.hEDIT,(LPWSTR)&msg, sizeof(msg));

Если это массив char, то надо использовать GetWindowTextA и не приводить указатель на массив к типу LPWSTR.

Последний аргумент GetWindowText, кстати, это не размер буфера, а количество символов в нём, так что туда надо (было бы) передавать не sizeof(msg) а sizeof(msg)/sizeof(*LPWSTR).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Читай MSDN. Там всё четко написано что и как. Сначала учись - потом глупые вопросы. А не наоборот.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы