COM 组件编程--VC知识库读杨老师文章笔记

数据类型:

1〉HRESULT

   

S_OK0x00000000成功
S_FALSE0x00000001函数成功执行完成,但返回时出现错误
E_INVALIDARG0x80070057参数有错误
E_OUTOFMEMORY0x8007000E内存申请错误
E_UNEXPECTED0x8000FFFF未知的异常
E_NOTIMPL0x80004001未实现功能
E_FAIL0x80004005没有详细说明的错误。一般需要取得 Rich Error 错误信息(注1)
E_POINTER0x80004003无效的指针
E_HANDLE0x80070006无效的句柄
E_ABORT0x80004004终止操作
E_ACCESSDENIED0x80070005访问被拒绝
E_NOINTERFACE0x80004002不支持接口

 

 

2> 创建ATL项目

    . 新建一个ATL项目,名称simple.应用程序设置服务器类型选择dll方式.其余多选选项全部非选(取消顶部"属性"多选框的勾选)

    . 点击菜单: 项目-> 添加类; 选择 ATL简单对象

    . 弹出的向导中: 简称为 Fun,其余自动完成;"选项"选项卡中接口选择 自定义,自动化兼容不选.完成

    . 查看类试图, 在IFun上点击右键, 选择: 添加->添加方法。

    . 弹出的向导中,返回类型定死为HRESULT,表明函数执行状态结果, 函数功能结果由参数返回,输入的

         参数在参数属性中选择in,输出的选择out, 返回结果的返回retval, retval类型只能有一个,并被放在最后

         默认的out/retval是灰色,当你有参数类型是指针时才可用。

         完成添加,到Fun.cpp中编辑函数

                  添加行: *ret = n1 + n2;

 

3> 调用此COM

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值