经测试:
错误来源于:如下程序,在vs2010下使用GetFileName(),文件可以成功读取,但在VS2013下,使用GetFileName()读取文件在debug下可以,但release下失败,改为GetPathName()后,便可以成功编译。
CFileDialog filePCloudDlg(TRUE);
filePCloudDlg.m_ofn.lpstrTitle=_T("选择点云文件");
filePCloudDlg.m_ofn.lpstrFilter=_T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0");
if (IDOK==filePCloudDlg.DoModal())
{
icp.msVecSrcPoints.clear(); //清空点云存储容器
//CString fileName = filePCloudDlg.GetFileName();//得到用户选择的文件名
CString fileName = filePCloudDlg.GetPathName();//得到文件的完整路径名
std::ifstream filePCloud(fileName);
if (!filePCloud)
{
MessageBox(_T("Unable to open the file!"));
}
while(!filePCloud.eof())
{
filePCloud>>PointCloud;
if (filePCloud.eof())
{
break;
}
icp.msVecSrcPoints.push_back(PointCloud);
}
filePCloud.close();
}
时间: 2024-10-13 13:08:16