我碰到this錯誤來了,我看到its而popular周圍的變量C++堆棧被損壞
這個問題是相當混亂。我試圖找出哪個變量沒有被正確返回。將一個VC6項目移植到VS 2012時發現了此問題。這裏發生的是從數據庫中取出記錄集並將其轉入XML。
CGenAction GenAct(lUserId, O_ALARM, A_GET_TREE, ppALResult)
{
try
{
if (GenAct.BeginAction())
{
checkuserPremission(info);
Result Res;
Dynaset DynaSet;
if (type.GetRecordSet(UserId, DynaSet, Res)) {
turnToXml(DynaSet,Res.m_bstrXMLString);
}
returnToUI(Res);
}
}
}
之前我就知道這種類型的bug我試圖做這樣的事情將Res
和DynaSet
堆而不是堆棧內:
static Result * ResPtr = NULL;
if(ResPtr != NULL)
{
delete ResPtr;
}
ResPtr = new Result();
這並沒有幫出來的問題。圍繞以下變量的堆棧已損壞:Res
,DynaSet
我會盡量縮小範圍,並且會盡快更新問題。
我沒有看到任何可能導致此代碼中堆棧損壞的內容,您是否可以縮小範圍併發布該代碼? – 2013-04-24 08:49:43
堆棧_which_變量?你的代碼中有很多,所以很難說沒有看到這些類的代碼。此外,這些「開始/結束宏」評論是什麼?這是一些宏的一部分嗎? '試圖找出哪個變量沒有被正確返回是相當混淆的 - 錯誤確切地說明哪個變量被損壞了,你能顯示完整的錯誤信息嗎? – 2013-04-24 09:35:58