0

我的代码在 Windows 10 下运行良好,但昨天我尝试在 Windows 7 下运行它。必须将 ucrtbase.dll 添加到程序目录,否则程序在启动时崩溃。以为现在一切都很好..但发现日志文件和其他一些文件总是空的。我没有 .imbue(".utf8") 的文件不是空的,并且充满了预期的信息它总是有一个新问题。这真的让我筋疲力尽。而现在,我只是找不到任何解决这个问题的方法,所以我真的希望在这里找到帮助

这是一些在 Windows 7 上无法正常工作的代码示例

int wmain(int argCount, wchar_t* argValues[])
{
    UNREFERENCED_PARAMETER(_setmode(_fileno(stdout), conhelper::_O_U16TEXT));
    UNREFERENCED_PARAMETER(_setmode(_fileno(stdin), conhelper::_O_U16TEXT));
    UNREFERENCED_PARAMETER(_setmode(_fileno(stderr), conhelper::_O_U16TEXT));

    _wsetlocale(LC_ALL, L".utf8");
    std::locale locUTF8(".utf8");
    std::wofstream master;
    master.imbue(locUTF8);
    master.open(L"woof.txt", std::ios::trunc);
    master << L"Are you gonna work properly in this life or at least in another one... please..";
    master.close();


    return 69;

}

在 woof.txt 中的 windows 10 下输出 - “你会在今生或至少在另一个生活中正常工作......拜托......”

在 woof.txt 中的 windows 7 下输出 - ""

使用 utf8 会导致一些输出预计使用不同的语言,例如俄语。如何让我的程序在 win7 或 win10 或其他窗口下按预期运行?

如果我写的东西很难理解,我很抱歉,不是母语人士,这是我第一次尝试在 stackoverflow 上提问

4

0 回答 0