这个问题比较混乱。我试图找出哪个变量没有正确返回。这个问题是在将 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);
}
}
}
在我知道这种类型的错误之前,我尝试通过执行以下操作将Res
和DynaSet
放在堆中而不是堆栈中:
static Result * ResPtr = NULL;
if(ResPtr != NULL)
{
delete ResPtr;
}
ResPtr = new Result();
这无助于解决问题。以下变量周围的堆栈已损坏:Res
,DynaSet
我将尝试进一步缩小范围并很快更新问题。