在C ++中打印时只显示一个字符

问题描述 投票:0回答:1

这是我的代码:

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

在打印时,char(文本)只会向控制台输出一个字符。它是WINAPI gui和一起运行的控制台。它成功设置了winapi标题并成功获得了文本,但我不知道为什么这只是将一个字符打印到控制台...

c++ winapi
1个回答
3
投票

您正在执行从宽字符串到窄字符串的原始强制转换。这种转换永远不会安全。

宽字符串在Windows中存储为双字节字。在您的情况下,第一个字符的高字节是0,x86是little-endian,因此打印在第一个字符处停止。

© www.soinside.com 2019 - 2024. All rights reserved.