代码以未知的原因崩溃。我真的不知道为什么,我试着在另一台电脑上运行这个程序,甚至开始一个新的项目,但什么也没有。我也重新编译了boost。
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.但问题是:这只发生在的一些时候,其他的工作正常!
发布于 2013-12-13 12:11:44
哦,等一下file_name指向陈旧的数据。
尝试将filename更改为std::string。并确保在初始化filename时const char*仍然有效。
最有可能的是,const char*指向一个不再存在的(堆栈)位置。
如果在启用完全警告的情况下进行编译,您可能会发现这种情况发生在何处(例如,编译器报告“返回对本地的引用”)。
https://stackoverflow.com/questions/20563734
复制相似问题