COM互操作概述
dotnet出现之前,组件对象模型(Component Object Model, COM)是微软使用的Window软件开发技术。作为一种为其他应用程序提供面向对象的API或服务的方法,COM组件在软件开发上有着举足轻重的作用。
微软在.NET Framework中为COM和托管代码之间进行互操作提供了很好的支持。这种互操作技术就是COM Interop。COM Interop同时支持在托管代码中使用COM对象和向COM公开托管对象。
在.NET中使用COM对象
在.NET中使用COM对象,主要有3中方法。
- 使用TlbImp工具为COM组件创建一个互操作程序集以早期绑定COM对象。
- 通过反射后期绑定COM对象。
- 通过P/Invoke创建COM对象。
其他要点
封送处理。包括封送常用COM数据类型、VARIANT数据类型、数组、COM集合、自定义数据结构,以及处理COM事件。
错误处理。包括如何在托管代码中获得COM代码返回的错误信息,以及如何使用IErrorInfo
接口为托管代码提供扩展的错误信息。
如果提高COM互操作的性能。
如何将互操作程序集放入全局程序集缓存中,以实现多个托管项目共享同一份互操作程序集。
参考书目
《精通.NET互操作》(黄际洲 崔晓源)
(END)