Mfc CDocument::SetPathName(..)在VS2015中崩溃
我将应用程序从VS2008升级到VS2015 我得到一个异常,我假设它是从Mfc CDocument::SetPathName(..)在VS2015中崩溃,mfc,Mfc,我将应用程序从VS2008升级到VS2015 我得到一个异常,我假设它是从 /*virtual*/ BOOL CMyAppDoc::SaveModified() { if (!IsModified()) return TRUE; // nothing to do CString str = GetPathName(); SetPathName(str, TRUE); // assign a PathName and add to MRU ! retur
/*virtual*/ BOOL CMyAppDoc::SaveModified()
{
if (!IsModified())
return TRUE; // nothing to do
CString str = GetPathName();
SetPathName(str, TRUE); // assign a PathName and add to MRU !
return OnSaveDocument(str);
}
错误框显示:“遇到了不正确的参数”。我进一步调查,错误来自
void CRecentFileList::Add(LPCTSTR lpszPathName, LPCTSTR lpszAppID)
{
..
hr = _AfxSHCreateItemFromParsingName(lpWPath, NULL, IID_IShellItem,LPVOID*)&psi);
ENSURE(SUCCEEDED(hr));
..
}
hr Errorcode为2,表示错误\u文件\u未找到:系统无法找到指定的文件
解决方法是首先使用OnSaveDocument(..)保存文件,然后调用SetPathName(..)逐步完成调试器,并告诉我们是什么函数导致异常。。。