COM对象是什么意思?


9

它是什么?据我所知,这是一种针对某些对象的微软特殊技术。但到底是什么?

Answers:


4

它基本上是用于在Windows环境中编写程序的旧技术。它既庞大又复杂,管理/支持并不令人愉快。.NET框架是它的替代品。


是不是.NET框架中使用的COM对象?
谢尔盖

2
它们可以从.NET调用,但它们是完全不同的系统。它叫做COM Interop。您可以在计算机上稍微浏览它们 - 在“控制面板”>>“管理工具”>>“组件服务”下。
摩根T.

1
COM不会很快到任何地方。它被微软自己的产品广泛使用。我认为你称之为“基本上是一项旧技术”有点误导。是的,它是在90年代初期首次推出的,所以在技术上它是“老”的,因为它已经存在了一段时间,但你需要注意不要表明它已经过时或过时了。
Cody Gray

11

COM对象基本上是一个黑盒子,它实现了一些已知的接口。它还可以在Windows中注册,以便程序可以获得它。

例如,假设有一些界面ICalculator,我编写我的程序来使用。我现在可以交换任何用任何编程语言编写的对象(因为它是一个二进制接口)ICalculator。然后在运行时,我可以为我的用户提供某种选项,以便他们可以选择使用FooCorpCalculator用Python编写的COM对象,或者如果他们需要更高的速度,他们可以选择NinjaCalculator用C语言编写。关键是,我写的我的程序依赖于接口而不是实现,然后选择使用稍后实现接口的实际COM对象。

当然,它还有很多,但这可能是一个让你更具体的例子。


4

请参阅此Wikipedia文章:组件对象模型

组件对象模型(COM)是Microsoft在1993年引入的软件组件的二进制接口标准。它用于在大量编程语言中实现进程间通信和动态对象创建。术语COM通常在Microsoft软件开发行业中用作包含OLE,OLE自动化,ActiveX,COM +和DCOM技术的总称。

COM对象通常在DLL文件中实现。它们可以被程序用于各种功能。这里使用的术语“对象”指的是面向对象编程中的对象


1
这就是我问这个问题的原因。因为维基百科没有回答它。定义非常抽象,我没有看到任何真实的例子。
谢尔盖

0

COM是一组特定于Windows的技术,用于实现代码重用和互操作性,主要是在二进制级别(不一定是源代码级别)。

在20世纪90年代早期,比尔盖茨不允许Powerpoint开发团队为Powerpoint产品实施自己的图表子系统,因为微软已经拥有Excel。因此,他们制定了一个规范,使其内部产品能够交换数据并调用彼此的功能。微软推广了这些API,发布了它们以及更多的代码设计指南。

观看2006年的视频:Tony Williams:COM的共同发明者

我认为,现在在2012年,COM仍然是WMI和Office的核心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.