这是我的代码:
auto text = new wchar_t[WCHAR_MAX];
GetWindowTextW(hEdit, text, WCHAR_MAX);
SetWindowTextW(hWnd, text);
printf_s((const char *)text);
在打印时,char(文本)只会向控制台输出一个字符。它是WINAPI gui和一起运行的控制台。它成功设置了winapi标题并成功获得了文本,但我不知道为什么这只是将一个字符打印到控制台...
您正在执行从宽字符串到窄字符串的原始强制转换。这种转换永远不会安全。
宽字符串在Windows中存储为双字节字。在您的情况下,第一个字符的高字节是0
,x86是little-endian,因此打印在第一个字符处停止。