防止应用程序崩溃HRESULT

时间:2012-12-22 19:29:42

标签: visual-c++ mfc

我有一个很大的问题,希望得到你的帮助。我有一个名为 pRstEmployDB _RecordsetPtr 变量。在我的代码中,我有一行来打开Recordset

pRstEmployDB->Open("SOCIETE", _variant_t((IDispatch *) theApp.pConEmployDB, true),  adOpenStatic, adLockReadOnly, adCmdTable);

问题是当此函数崩溃时(Acces Violation)它会显示一个messageBox,说明发生了错误并崩溃。我怎么能抓住这个错误,这样程序就不会崩溃并被关闭?

我尝试使用ASSERT(... == S_OK)但也崩溃了。

我也尝试过这种方式,但没有希望

Try
{
 pRstEmployDB->Open("SOCIETE", _variant_t((IDispatch *) theApp.pConEmployDB, true),   adOpenStatic, adLockReadOnly, adCmdTable);
}
catch (CException* e)
{
  return FALSE;
}

对于信息:开放功能代码。(msdao15.tli)

inline HRESULT Recordset15::Open ( const _variant_t & Source, const _variant_t & ActiveConnection, enum CursorTypeEnum CursorType, enum LockTypeEnum LockType, long Options ) {
    HRESULT _hr = raw_Open(Source, ActiveConnection, CursorType, LockType, Options);
    if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _hr;
}

0 个答案:

没有答案