代码因未知原因崩溃。我真的不知道为什么,我尝试在另一台计算机上运行它,甚至开始一个新项目,但没有。我也重新编译了提升。
try
{
cout << "A " << file_name << endl;//fine
file_mapping m_file(file_name, read_only);
mapped_region region(m_file, read_only);
} catch (interprocess_exception e)
{
cout << "B|" << file_name << "| ";//empty???
cout << e.what() << endl;
}
文件名100%有效,const char*
,代码输出:
A C:\file
B || The system cannot find the file path specified.
但问题是:这只发生有时,其他工作正常!
答案 0 :(得分:0)
哦,等待file_name
指向陈旧数据。
尝试将filename
更改为std::string
。并 确定 ,const char*
在您初始化filename
时仍然有效。
最有可能的是,const char*
指向不再存在的(堆栈)位置。
如果在启用完全警告的情况下编译,您可能会发现这种情况发生的位置(当编译器报告“返回对本地的引用”时,例如。)