加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

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,那你怎么办?你检查无效指针还是不检查?

COM似乎是一切的基础,我找不到关于简单IDispatch正确行为的一个很好的信息来源.您如何处理生产代码中的这种不一致?

解决方法

使用COM时,除非确实需要对这些值进行特殊处理,否则不应检查特定的返回值.相反,当您只需要知道呼叫是否失败或成功时,您应该使用FAILED或SUCCEEDED宏.即

HRESULT hr = ...;
if (FAILED(hr)) {
   ...

COM调用通常可以返回比文档中指定的范围更广的错误代码.被调用的函数不是唯一的错误来源.根据实际调用(进程内,进程外,DCOM),COM系统本身可以返回大量错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读