我的应用程序必须在 Windows 上运行并使用 unicode 字符集。当我尝试使用以下命令读取输出时,我只会得到打乱的输出,但是用 char_t 等效项替换所有类型都有效,除非存在当前代码页不支持的字符。有谁知道为什么 wchar_t 变体似乎根本不起作用以及如何修复它?
boost::process::wipstream outStream;
std::wstring wcmd = L"dir";
boost::process::child process(wcmd, boost::process::std_out > outStream);
std::wstring line;
std::vector<std::wstring> lines;
while ((process.running()) && (std::getline(outStream, line)))
{
lines.push_back(line);
}