GetWindowText函数不能处理商标符号(GetWindowText Can't Ha

2019-10-22 14:03发布

HWND ForeWindow = GetForegroundWindow();
wchar_t WindowTxt[1024] = { L'\0' };
GetWindowTextW(ForeWindow, WindowTxt, 1024);
wprintf(L"%s\n", WindowTxt);
std::wstring Str(WindowTxt);
std::wcout << L"Wnd: " << Str << L"\n";

使用上面的代码来获得Skype的窗口,它是“的Skype™”我得到的输出:

“Skype专业?”

(该wcout线未能执行)

1)为什么GetWindowText时的无法处理此字符的宽字符版本

2)为什么的std :: wstring的无法解析wchar_t的数组,然后打印到控制台

Answer 1:

CMD控制台不处理Unicode很好。 输出发送到一个文件,并在和编辑器中打开它,我怀疑你会得到你所期望的实际字符。



文章来源: GetWindowText Can't Handle TradeMark Symbol