以下 C++ 代码在执行时出现神秘错误(“调试错误!...abort() 已被调用”)return
。这是 Visual Studio 2017 15.6.3,程序是 64 位调试版本,在 64 位 Windows 7 下运行。是什么导致了这个错误,我该如何解决?
wifstream inFile;
std::codecvt_utf16<wchar_t, 0x10ffff, std::little_endian> cv1;
inFile.imbue(std::locale(inFile.getloc(), &cv1));
return 0;
使用调试器跟踪显示消息来自反汇编指令
call std::basic_ifstream<wchar_t,std::char_traits<wchar_t> >::`vbase destructor'
msvcp140d.dll
堆栈上的最后一个条目,除了vcruntime140d.dll
和ucrtbased.dll
是
MyApp.exe!std::basic_ifstream<wchar_t,std::char_traits<wchar_t> >::`vbase destructor'() C++
这段代码的目的是输入文件infile
是 Unicode(小端),我正在将它读入一个std::string
变量。