无法从 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”,然后就卡住了。当我尝试使用 charcoutGetWindowTextA 时,这个循环可以 运行 并输出正常的英文字符。
使用单步调试,循环实际上仍然是 运行。但是不要输出任何东西。并且 str 显示 window 的标题正常。

好的!只需要设置我忘记的locale

wcout.imbue(locale("your locale"));