无法从 GetWindowText() 中提取 wchar[];
fail to wcout wchar[] which from GetWindowText();
while(TRUE){
HWND window = GetForegroundWindow();
WCHAR str[300] ;
ZeroMemory(str, sizeof(str));
GetWindowTextW(window,str,299);
wcout<<L"11"<<endl;
wcout<<str;
wcout<<L"22"<<endl;
Sleep(1000);
}
这段代码会输出“11”,然后就卡住了。当我尝试使用 char
, cout
和 GetWindowTextA
时,这个循环可以 运行 并输出正常的英文字符。
使用单步调试,循环实际上仍然是 运行。但是不要输出任何东西。并且 str
显示 window 的标题正常。
好的!只需要设置我忘记的locale
。
wcout.imbue(locale("your locale"));
while(TRUE){
HWND window = GetForegroundWindow();
WCHAR str[300] ;
ZeroMemory(str, sizeof(str));
GetWindowTextW(window,str,299);
wcout<<L"11"<<endl;
wcout<<str;
wcout<<L"22"<<endl;
Sleep(1000);
}
这段代码会输出“11”,然后就卡住了。当我尝试使用 char
, cout
和 GetWindowTextA
时,这个循环可以 运行 并输出正常的英文字符。
使用单步调试,循环实际上仍然是 运行。但是不要输出任何东西。并且 str
显示 window 的标题正常。
好的!只需要设置我忘记的locale
。
wcout.imbue(locale("your locale"));