c – 您应该如何阅读以下文档?
发布时间:2020-12-16 09:32:21 所属栏目:百科 来源:网络整理
导读:从 IDispatch::GetTypeInfoCount 起 The return value obtained from the returned HRESULT is one of the following: [S_OK - Success], [E_NOTIMPL - Failure] 底部的样本返回E_INVALIDARG和NOERROR. 据我所知,E_INVALIDARG不是S_OK,也不是NOERROR,那你怎
从
IDispatch::GetTypeInfoCount 起
底部的样本返回E_INVALIDARG和NOERROR. 据我所知,E_INVALIDARG不是S_OK,也不是NOERROR,那你怎么办?你检查无效指针还是不检查? COM似乎是一切的基础,我找不到关于简单IDispatch正确行为的一个很好的信息来源.您如何处理生产代码中的这种不一致? 解决方法
使用COM时,除非确实需要对这些值进行特殊处理,否则不应检查特定的返回值.相反,当您只需要知道呼叫是否失败或成功时,您应该使用FAILED或SUCCEEDED宏.即
HRESULT hr = ...; if (FAILED(hr)) { ... COM调用通常可以返回比文档中指定的范围更广的错误代码.被调用的函数不是唯一的错误来源.根据实际调用(进程内,进程外,DCOM),COM系统本身可以返回大量错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |