[翻译]C#和COM的互操作

简介:
  这篇文章将探讨一下C#和COM之间的相互操作性,本文分两个部分:第一部分讲述了什么是COM,第二部分讲述在.NET Framework中怎样应用COM。

  第一部分:Component Object Model(COM)

  Component

  Component不是其他的
什么,而是可以嵌入到其他程序构成的并可重用的二进制软件。它是通过提供的通用接口而和其他程序进行交互操作的,这样就允许任何语言写的两个不同的应用程序进行通信。

  Component的重要性

  当今开发的一个程序由于消耗的时间长,而且
难度大, 维护费高因此我们不能随便的将旧版本的程序给替换为新版本的程序。这个问题的解决方案就是重用Component。

  解决方案

  这个问题的解决方案就是将很多程序用到原有的函数给替换,并将其封装的一个通用的函数中。这样客户端要调用这个函数时就可以调用这个通用的函数已达到重用的效果。在我们的项目里,我们创建了5个应用程序以使其他用户能够简单的将他应用到各种语言中。

  COM框架

  为了能够让其他应用程序进行互操作必须遵循一定的规则,提供一个标准的接口。这样我们只需要一个标准的框架,而不要管他这个框架是谁开发的。

  COM犹如绿色打印

  如果所有程序都遵循着互操作的标准,不同人创建的应用程序间就可以相互操作,因此我们就可以开发我们所需要的所有应用程序公共特点的程序。Microsoft已经定义了一个标准模型以使的不同应用程序能够相互调用,这个模型就涉及到COM。他提供了相互调用不同程序解决方案的接口,无论是调用程序还是被调用的程序都必须遵循COM规则。COM的行为就像绿色的打印一样,他只提供理论上的程序接口而不包含它的解决方法。

  Microsoft COM

  当我们应用Window注册器注册一个COM或DCOM对象时,我们必须引用每一个对象的128位的唯一标识符GUID。无论什么时候一个客户端应用程序执行一个COM或DCOM对象时,客户端应用程序将通过Windows 
Registry 应用GUID来引用其对象。COM另一个特点就是无语言依赖性,COM客户端和COM对象都具有相同的布局和行为,无须关心 我们用何种语言来开发这个COM。COM这种无特殊语言依赖性,可以让一个由多个组成(Component)部分的系统通过不同语言来开发。我们用什么语言来开发COM并没有关系。(......说明了COM的特点,无语言依赖性带来的好处)

  一个Component的接口

  Microsoft的IDL

  COM和DCOM的内在基本概念是接口,一个接口同意客户端和一个对象之间进行相互通信。如果我们定义接口比如VB,我们必须用微软的Interface Definition Language(IDL),这个IDL必须用Microsoft 
Interface Definition Language编译器(MIDL)。

  GUID

  在一个COM对象中我们定义的每一个接口都包含一个Universally Unique Identifier (UUID),OS就是利用这个来生成一个GUID。当一个客户端程序执行一个接口的COM对象时,该应用程序将引用其UUID。一个接口是客户端和COM对象怎样通信的许可证。

本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2007/03/15/com_csharp.html,如需转载请自行联系原作者

相关文章
|
4天前
|
JavaScript 前端开发 Java
当下计算机主流语言
当下计算机主流语言
59 1
|
4天前
|
传感器 人工智能 物联网
【C 言专栏】C 语言与硬件交互的方法
【5月更文挑战第4天】C 语言在硬件交互中扮演关键角色,主要通过直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射I/O和设备驱动程序开发。挑战包括硬件多样性、实时性要求和错误处理。随着物联网和人工智能发展,C语言与硬件交互的需求增加,未来将面临更多新硬件和技术的挑战。本文旨在帮助读者理解和掌握这一领域的知识,以实现更高效的硬件互动。
【C 言专栏】C 语言与硬件交互的方法
|
10月前
|
算法 Java 程序员
01-C++核心语法|C++概述【C++简介、C++起源、可移植性和标准、为什么C++会成功、从一个简单的程序开始认识C++】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
01-C++核心语法|C++概述【C++简介、C++起源、可移植性和标准、为什么C++会成功、从一个简单的程序开始认识C++】
|
11月前
|
API UED Python
用python开发文本翻译小软件
用python开发文本翻译小软件
159 0
|
网络协议 JavaScript Java
Google Java编程风格规范(2020年4月原版翻译)
Google Java Style Guide 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。 与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则,
820 0
|
存储 测试技术 索引