我有一个大问题,希望能得到你的帮助。我有一个名为pRstEmployDB的_RecordsetPtr变量。在我的代码中,我有一行可以打开 Recordset
pRstEmployDB->Open("SOCIETE", _variant_t((IDispatch *) theApp.pConEmployDB, true), adOpenStatic, adLockReadOnly, adCmdTable);
问题是当这个函数崩溃(访问冲突)时,它会显示一个消息框来说明发生了错误并崩溃。我怎样才能捕捉到错误,以便程序不再崩溃并被关闭?
我尝试使用 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;
}