我有一个可用的MFC应用程序(对话框应用程序),我删除了其中的一些按钮并添加了一个新按钮,但现在当它关闭时,应用程序会崩溃。它会在其中一个ASSERT()宏中失败。调试断言在这些行上失败:
文件:afxtempl.h 行:558
当我查看该代码时,它大致是这样的:
template<class TYPE, class ARG_TYPE>
void CArray<TYPE, ARG_TYPE>::AssertValid() const
{
CObject::AssertValid();
if (m_pData == NULL)
{
ASSERT(m_nSize == 0);
ASSERT(m_nMaxSize == 0);
}
else
{
// here it fails
ASSERT(m_nSize >= 0);
ASSERT(m_nMaxSize >= 0);
ASSERT(m_nSize <= m_nMaxSize);
ASSERT(AfxIsValidAddress(m_pData, m_nMaxSize * sizeof(TYPE)));
}
}
#endif //_DEBUG
有没有什么线索表明出了什么问题?这个应用程序之前一直运行良好,但是我把它搞砸了。