访问ccomptr指针和应用程序崩溃时访问冲突(c系统异常代码:c0000005)

时间:2011-09-20 12:29:32

标签: c++ visual-c++ com mfc

访问计算机时出现访问冲突错误。 该错误不一致,只有在尝试访问大量数据时才可重现。 我有2900个组件,我为每个组件调用一个函数。在这个函数中,我正在访问一个ccompter,而这个应用程序在随机位置崩溃,如200,210,2500等。崩溃时该位置不固定。

此问题特定于具有以下配置的系统: Window Server 2003 R2 至强CPU,2.66 ghz 2 GB RAM

这是我的代码

XGGraphicAttribute* pAttr = pExtraGraphicInfo->GetAttribute();
if(pAttr)
{
    DBAttributes* db_attributes = NULL;

    db_attributes = static_cast<DBAttributes*> (pAttr->GetDBAttributes());

    CComPtr<IEPGraphicData> pIEPGraphicData;

    if(db_attributes)
    {
        pIEPGraphicData = db_attributes->GetGraphicData(); // here my app got crashed 
    }

}


IEPGraphicData* DBAttributes::GetGraphicData () const
{
    return m_pIEPGraphicData;
}

1 个答案:

答案 0 :(得分:0)

的可能性:

  1. GetGraphicData()返回的对象可能不支持IEPGraphicData接口。我希望智能指针赋值可以产生空指针,而不是访问冲突。

  2. db_attributes对象已从脚下删除。