Отображение только одного символа при печати в C ++ - PullRequest
0 голосов
/ 09 марта 2019

Это мой код:

auto text = new wchar_t[WCHAR_MAX];
GetWindowTextW(hEdit, text, WCHAR_MAX);
SetWindowTextW(hWnd, text);
printf_s((const char *)text);

При печати символ (текст) выводит на консоль только один символ.Это графический интерфейс WINAPI и консоль, работающая вместе.Он успешно устанавливает заголовок winapi и успешно получает текст, но я понятия не имею, почему это вывод на консоль только одного символа ...

1 Ответ

3 голосов
/ 09 марта 2019

Вы выполняете сырой от широкой струны до узкой струны. Это преобразование никогда не безопасно.

Широкие строки хранятся в Windows как двухбайтовые слова. В вашем случае старший байт первого символа равен 0, а x86 имеет младший порядок, поэтому печать останавливается на первом символе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...