【发布时间】:2009-09-15 07:53:19
【问题描述】:
我有一个工作的 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
关于出了什么问题的任何线索?该应用程序在早些时候运行良好,但我搞砸了。
【问题讨论】:
-
m_nSize 的值是多少?
-
从资源中删除控件并不总是足够的。也许有代码仍在尝试使用它。