com对象与其基础RCW分开后就不能再使用.pdf
《com对象与其基础RCW分开后就不能再使用.pdf》由会员分享,可在线阅读,更多相关《com对象与其基础RCW分开后就不能再使用.pdf(2页珍藏版)》请在三一文库上搜索。
1、RCW 是一个 .NET 和 COM 之间的桥梁, 上述错误就是在于COM 那一段的陆地消失了,你 再想走着这桥,系统就报错了, 这种问题多半是COM 对象被意外销毁或者没有抛出异常就崩溃导致。 解决问题是:肯定是系统对象在运行时某个地方,局部销毁了,在传入时,可用引用对象 ref,out 说明 : 运行库可调用包装(RCW) 的主要目标是隐藏托管和非托管编程模型之间的差异。要实现 无缝的转换, RCW 将使用选定的COM 接口,而不会将其向 .NET 客户端公开,如下图 所示。 COM 接口和运行库可调用包装 当作为早期绑定对象创建后,RCW 将成为特定的类型。它实现COM 对象所实现的接口
2、, 并公开该对象的接口中的方法、属性和事件。在上图中,RCW 公开INew 接口而使用 IUnknown 和 IDispatch 接口。此外, RCW 还向 .NET 客户端公开INew 接口的所有成 员。 RCW 使用下表所列的接口,这些接口由它所包装的对象公开。 接口说明 IDispatch 用于通过反射晚期绑定到COM 对象。 IErrorInfo 提供错误的文本说明、错误来源、帮助文件、帮助上下文以及定义错误的接口的 GUID (对于 .NET 类始终是GUID_NULL )。 IProvideClassInfo 如果所包装的COM 对象实现IProvideClassInfo, RCW
3、 将从此接口中 提取类型信息,以提供更佳的类型标识。 IUnknown 对于对象标识、类型强制和生存期管理: 对象标识 运行库通过比较每个对象的IUnknown 接口值来区分COM 对象。 类型强制 RCW 识别 QueryInterface 方法所执行的动态类型发现。 生存期管理 利用QueryInterface 方法, RCW 将获取并保留对非托管对象的引用,直至运行库对包装 执行垃圾回收并释放该非托管对象。 RCW 选择性地使用下表列出的接口,这些接口由它所包装的对象公开。 接口说明 IConnectionPoint 和 IConnectionPointContainer RCW 将公开连接点事件样式的对象转 换为基于委托的事件。 IDispatchEx 如果类实现IDispatchEx , RCW 将实现IExpando 。IDispatchEx 接口是 IDispatch 接口的扩展,但与IDispatch 不同的是,它启用成员的枚举、添加、删除和区分 大小写的调用。 IEnumVARIANT 使支持枚举的COM 对象可以当作集合来进行处理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- com 对象 与其 基础 RCW 分开 不能 使用
链接地址:https://www.31doc.com/p-4765225.html