• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 关于接口定义的一个问题

关于接口定义的一个问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了安卓数据线接口定义,光驱ide接口定义,hdmi接口定义,rj45网络接口定义,rj45接口定义等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于接口定义的一个问题
描述:

刚开始学习用ATL进行组件编程,现在写了两个接口ITestOne和ITestTwo前者继承于IDispatch后者继承与IUnknown,实现的组件类是CTestOne,接口映射表如下
BEGIN_COM_MAP(CTestOne)
 COM_INTERFACE_ENTRY(ITestOne)
 COM_INTERFACE_ENTRY(IDispatch)
 COM_INTERFACE_ENTRY(ITestTwo)
END_COM_MAP()
编译以及VB调用接口ITestOne内的函数都可以,但是不能调用ITestTwo内的方法因为他没有从IDispatch派生,那么现在如果我要将ITestTwo的基接口改为IDispatch的话,这个接口映射表如何写,用哪个宏?
COM_INTERFACE_ENTRY2
COM_INTERFACE_ENTRY_IID
COM_INTERFACE_ENTRY2_IID
请您给我一个具体的写法,非常感谢。
另外还有一个问题是当我的接口的某一个函数的参数只有一个是BSTR*的时候且参数类型是[out,retval]的时候,即ITestOne::GetBSTR1(/*out,retval*/BSTR* bstrRet)
VBS的调用过程如下:
Set a = CreateObject("MyTest.ComputerInfo")
a.Initialize()
v=a.GetBSTR()
MsgBox v
编译运行没有错误,但是如果函数是两个参数的时候VBS如何调用呢?
即ITestTwo::GetBSTR2(/*out*/BSTR* bstrOut,/*out,retval*/BSTR* bstrRet)


解决方案1:

COM_INTERFACE_ENTRY2(ITestTwo, IDispatch)或者COM_INTERFACE_ENTRY2_IID(IID_ITestTwo,ITestTwo, IDispatch),两者一样.不过多个从IDispatch派生的接口你要避免因为只有一个是默认的即你仍然只能使用一个.

解决方案2:

v = GetBSTR(str)


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 下面的接口该怎么定义?
  • 接口中如何定义枚举?接口方法中如何加入可选参数?
  • 关于接口定义的一个问题

相关文章

  • 2017-06-04 请问一个控件如何做成固定大小?
  • 2017-06-04 IE中Activex控件闪烁的问题。(解决还有100分,up者有分)
  • 2017-06-05 Shell扩展中怎么单击触发不是右键菜单?
  • 2017-06-04 关于IOleInPlaceObjectWindowless的键盘事件处理
  • 2017-06-05 如何使用别人的com组件
  • 2017-06-04 VC打印问题,请高手赐教,一定给分
  • 2017-06-04 用的是VC70编写了一个用到COM库的程序,为什么执行时没错而调试时出错???很急呀!快帮忙。
  • 2017-06-04 VC++中如何利用MSCom控件编写串口程序
  • 2017-06-05 管道问题,求解!大家快来帮忙!
  • 2017-06-04 OIOIC和oicc发布106版本了

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 设计好ATL容器后,如何使容器中的控件处于设计模式?
    • 如何在显示网站前完成处理
    • 怎么把程序图标放在消息栏里面?
    • word插入控件以后用鼠标拖动控件以及该控件刷新的问题
    • 万分火急的一个问题!!!万分感谢!!如果能够搞定,我将我的全部分数送上!
    • 如何检查键盘状态和控件是否拥有焦点?
    • 50分求教!如何在ATL模板服务程序里添加MFC支持?
    • 在ATL编程时,反问数据库时变量不是使用'"+变量+"'表示的吗?
    • 诚心求教,该送多少分,您说话
    • 怎样用vc调试一个服务程序?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有