社区
ATL
帖子详情
请问COM能否实现多态?
beanders
2005-03-25 11:31:11
我想用COM对象 封装 三种设备对象 ,而这三种设备 又具备一定的共性,所以我想从 一个共同的基类继承.
另外, 将来客户程序操作的时候,我希望能用一个对象指针来操作这 三种对象(比如调用这三种对象的函数,而这个函数在三种对象中同名), 请问该怎么实现?
谢谢
...全文
152
13
打赏
收藏
请问COM能否实现多态?
我想用COM对象 封装 三种设备对象 ,而这三种设备 又具备一定的共性,所以我想从 一个共同的基类继承. 另外, 将来客户程序操作的时候,我希望能用一个对象指针来操作这 三种对象(比如调用这三种对象的函数,而这个函数在三种对象中同名), 请问该怎么实现? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
beanders
2005-03-28
打赏
举报
回复
to weirdy(远古传说)
请问更改哪里?
我用向导定义了一个 IDevice 接口,然后手动定义了一个IDeviceA接口
在VB中, 当我输入 '.' 的时候它只出现了一个 Device 和 IDevice,尽管 IDeviceA也是可用的,但为什么不能出现?我希望IDeviceA也能象IDevice一样 把前面那个 'I'省略掉,请问该怎么做?
谢谢
xenke
2005-03-28
打赏
举报
回复
1.VB不是脚本,IDispath继承自 IUnknown
2,更改.idl文件中相应的名字
beanders
2005-03-28
打赏
举报
回复
to 各位老大,可能我没讲清楚,所以耽误大家时间了
昨天研究了一下 <Dr. GUI on Components, COM, and ATL> 实现了我的目的:
用向导定义了一个接口和它的实现类, 手动添加了 3个接口,并 让原来的实现类多重继承自这三个接口,
关于多态,参考了《ATL技术内幕》:实现类里 定义了三个不同的计算函数,在三个接口中分别定义了3个声明完全相同的 计算函数(直接调用 自己的计算函数),和三个不同名称的 计算函数(纯虚函数,对应实现类里的3个函数)
一点疑问:
1 我看书上都说 IDispath接口是为了给脚本语言用的,但我的三个接口都继承自 IUnknown,VB照样能用,这是为什么?
2 我想更改接口在VB中显示的名字,应该怎么做?谢谢
beanders
2005-03-27
打赏
举报
回复
to sjcode(COM就是爱)
请详细些吧
有代码吗?谢谢
beanders
2005-03-27
打赏
举报
回复
up
sjcode
2005-03-27
打赏
举报
回复
我的mail是sj.code@gmail.com
发邮件给我
hw110
2005-03-26
打赏
举报
回复
可以定义一个基接口啊,然后其他三个具体接口从此基接口派生
beanders
2005-03-26
打赏
举报
回复
btw:我得客户程序可能是 VB
设置参数 和 调用计算程序 不是同一个 程序模块做的, 将来应该是 硬件访问程序 来设置 设备的参数 , 显示程序来 调用计算程序,获得计算结果
谢谢
beanders
2005-03-26
打赏
举报
回复
to 两位老大
我想的是运行时的多态
我想实现这样:
实现一个 设备群对象, 客户程序通过设备群对象 得到一个 设备数组 or 设备链表, 这三种设备就存放在这个数组里 ,客户通过 基类指针 访问这个数组中的单元,来得到这个设备的编号,以及确定这个对象是哪种设备, 然后 通过具体设备的指针来设置 具体设备的参数, 设置好参数后, 就可以通过 基类指针调用 基类实现的一个虚函数 来完成不同的计算
不知道我说得是否明白
谢谢
sjcode
2005-03-26
打赏
举报
回复
你可以定一个共性的接口,让这三个类分别实现这个接口的函数。
通过queryInterface来转换接口指针类型,完成客户端的调用.
wshcdr
2005-03-26
打赏
举报
回复
COM的C实现就是用 用纯虚函数来实现的,多态当然一点问题都没有.
COM
组件开发(一)—— 对象与接口
本文深入探讨了
COM
规范中的核心要素:对象与接口。详细解释了
COM
对象的封装特性、可重用性、
多态
性,以及
COM
接口的定义、二进制特性和接口不变性。介绍了
COM
对象如何通过接口提供服务,以及接口继承和
多态
性的
实现
方式。
掌握C++
多态
性与
COM
组件交互的奥秘
本文结合《C++ Primer Plus》探讨C++
多态
性
实现
及在
COM
环境的应用。C++通过虚函数
实现
运行时
多态
,
COM
组件通过接口交互,在C++中表现为抽象基类。
COM
组件需在注册表注册,
多态
性让组件松耦合交互,合理管理机制对系统稳定运行至关重要。
COM
开发指南(1)—
COM
技术概述
本文深入解析了微软的
COM
(组件对象模型)技术,包括
COM
的架构、DLL、库函数和客户端的使用。
COM
实现
了平台语言无关性、位置透明性、版本兼容性和即插即用性,允许不同语言和环境下组件的复用。通过
COM
接口和
实现
类,客户端能够动态调用组件,而
COM
工厂类和导出函数确保了对象的创建和管理。
COM
技术的特点使其成为构建可复用软件的有效手段。
COM
原理及应用----
COM
对象和接口
本文深入讲解
COM
对象模型的核心概念,包括对象与接口的关系、接口标识、接口查询机制、
多态
性和接口继承等内容,并探讨了
COM
接口的设计问题及其
实现
方法。
《
COM
技术内幕》读书笔记——第2章
COM
接口的
实现
本文是《
COM
技术内幕》第2章读书笔记,重点讲述了
COM
接口的
实现
方式,强调接口作为纯抽象基类的角色,以及C++中__stdcall调用约定的重要性。
COM
接口的不变性、多重接口和组件的接口集概念被提出,同时指出组件不直接访问实例数据,而是通过函数交互。此外,虚函数表和C++
多态
性的理解是深入理解
COM
的关键。通过一个示例展示了如何通过接口IX和IY与组件CA进行通信。
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章