admin管理员组

文章数量:1584219

今天遇到了一个很奇怪的问题,我的电脑是win7+64专业版的,在VC6.0上调试MFC程序,最后程序关闭的时候,弹出下述警告

但是在Release版本不会出现这个问题,最关键的是在同学电脑(Win7+64旗舰版)无论是Debug还是Release都没问题,弄得我差点重装系统。
后来,进入提示中的filecore.cpp(这是VC6.0软件自己的文件)的295行,程序如下

void CFile::Close()
{
	ASSERT_VALID(this);
	ASSERT(m_hFile != (UINT)hFileNull);//这里报错了
	BOOL bError = FALSE;
	if (m_hFile != (UINT)hFileNull)
		bError = !::CloseHandle((HANDLE)m_hFile);
	m_hFile = (UINT) hFileNull;
	m_bCloseOnDelete = FALSE;
	m_strFileName.Empty();
	if (bError)
		CFileException::ThrowOsError((LONG)::GetLastError());
}

大意就是说,这个要关闭的文件句柄不能为空,否则报错。

CGraphicDoc::~CGraphicDoc()
{
	delete m_UndoList;
	Fundo.Close ();//这里Fundo不能为空,也就说不能是无效变量
	remove(FileName);
}

Relea

本文标签: 专业版旗舰版程序吐槽