问题:编写的MFC程序Debug时无错误;Relesse版本中提示debugHeap.cpp中 888行错误,其实就是堆被破坏,并且定位到了一个奇怪的地方,如下图:
问题重现:在此MFC程序中我调用了自己编写的外部动态库,外部接口为GetTranslateInfo(TF, sTranslate, SimpleInfoColor, arrDetailInfo);函数。经调试显示进入函数中向arrDetailInfo.add()增加内容时出错,但是经查找并无语法错误。在函数前后增加BUFF数组,看经过函数运行后数组内存是否被破坏,经查也无破坏。
//更新显示
void UpdateShow(Frame TF)
{
m_TranDetInfo.DeleteAllItems();
//报文内容
CString sTranslate = L"";
COLORREF SimpleInfoColor;
CArray<DetailTranslateInfo, DetailTranslateInfo&> arrDetailInfo;
GetTranslateInfo(TF, sTranslate, SimpleInfoColor, arrDetailInfo);
int listCnt = m_TranDetInfo.GetItemCount();
CString tmp;
for (int i = 0; i < arrDetailInfo.GetCount(); i++)
{
/*