我有一个很大的问题,希望得到你的帮助。我有一个名为 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;
}