MFC 堆棧問題-Debug無錯誤,Release報錯誤

 問題:編寫的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++)
	{
              /*
                部分代碼
               ********************************
               */

		listCnt++;
	}
}

 解決辦法:在動態庫工程與M

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章