首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

满载了文件打开函数,第一次可以打开,第二次弹出错了,不知道是哪里内存溢出了

2013-01-21 
重载了文件打开函数,第一次可以打开,第二次弹出错了,不知道是哪里内存溢出了BOOL CTest14Doc::OnOpenDocum

重载了文件打开函数,第一次可以打开,第二次弹出错了,不知道是哪里内存溢出了
BOOL CTest14Doc::OnOpenDocument(LPCTSTR lpszPathName) 
{
//if (!CDocument::OnOpenDocument(lpszPathName))
//return FALSE;
DeleteContents();
g_pView->Invalidate();
FILE *dxf = fopen(lpszPathName,"r");
if(dxf==NULL) 
{
TRACE(_T("文件打开失败!"));
return FALSE;
}
if(!OpenDoc(dxf))
{
TRACE(_T("打开文件失败!"));
return FALSE;
}

// TODO: Add your specialized creation code here
return TRUE;
}


满载了文件打开函数,第一次可以打开,第二次弹出错了,不知道是哪里内存溢出了满载了文件打开函数,第一次可以打开,第二次弹出错了,不知道是哪里内存溢出了
调试运行后,第二次按打开报错的地方是红色标记的,要怎么改啊。
int CFileDialog::DoModal()
{
ASSERT_VALID(this);
ASSERT(m_ofn.Flags & OFN_ENABLEHOOK);
ASSERT(m_ofn.lpfnHook != NULL); // can still be a user hook

// zero out the file buffer for consistent parsing later
ASSERT(AfxIsValidAddress(m_ofn.lpstrFile, m_ofn.nMaxFile));
DWORD nOffset = lstrlen(m_ofn.lpstrFile)+1;
ASSERT(nOffset <= m_ofn.nMaxFile);memset(m_ofn.lpstrFile+nOffset, 0, (m_ofn.nMaxFile-nOffset)*sizeof(TCHAR));

[解决办法]
文件打开后,没有关闭吧
[解决办法]
FILE *dxf = fopen(lpszPathName,"r");

if(!OpenDoc(dxf)) //入参错误啊,你下面是CString类型的,dxf不是啊

BOOL CTest14Doc::OpenDoc(CString PathName)

热点排行