GetWindowText 无法处理商标符号
GetWindowText Can't Handle TradeMark Symbol
HWND ForeWindow = GetForegroundWindow();
wchar_t WindowTxt[1024] = { L'[=10=]' };
GetWindowTextW(ForeWindow, WindowTxt, 1024);
wprintf(L"%s\n", WindowTxt);
std::wstring Str(WindowTxt);
std::wcout << L"Wnd: " << Str << L"\n";
使用上面的代码获取 skype 的 window,即 "Skype™" 我得到输出:
"Skype?"
(wcout行执行失败)
1)为什么GetWindowText的宽字符版本无法处理这个字符
2) 为什么std::wstring解析wchar_t数组失败然后打印到控制台
CMD 控制台不能很好地处理 Unicode。将输出发送到一个文件并在编辑器中打开它,我想你会得到你期望的实际字符。
HWND ForeWindow = GetForegroundWindow();
wchar_t WindowTxt[1024] = { L'[=10=]' };
GetWindowTextW(ForeWindow, WindowTxt, 1024);
wprintf(L"%s\n", WindowTxt);
std::wstring Str(WindowTxt);
std::wcout << L"Wnd: " << Str << L"\n";
使用上面的代码获取 skype 的 window,即 "Skype™" 我得到输出:
"Skype?"
(wcout行执行失败)
1)为什么GetWindowText的宽字符版本无法处理这个字符
2) 为什么std::wstring解析wchar_t数组失败然后打印到控制台
CMD 控制台不能很好地处理 Unicode。将输出发送到一个文件并在编辑器中打开它,我想你会得到你期望的实际字符。