它是什么?据我所知,它是微软针对某些对象的特殊技术。但具体是什么呢?
答案1
它基本上是一种用于在 Windows 环境中编写程序的旧技术。它庞大而复杂,管理/支持起来并不愉快。.NET 框架是它的替代品。
答案2
COM 对象基本上是一个实现某些已知接口的黑盒。它还可以向 Windows 注册自身,以便程序可以获取它。
例如,假设ICalculator
我编写程序要使用某个接口。我现在可以交换任何用任何编程语言编写的对象(因为它是一个二进制接口),只要它实现了ICalculator
。然后在运行时,我可以为用户提供某种选项,以便他们可以选择使用FooCorpCalculator
用 Python 编写的 COM 对象,或者如果他们需要更快的速度,他们可以选择NinjaCalculator
用 C 编写的。关键是,我编写程序依赖于接口,而不是实现,然后选择稍后使用实现该接口的实际 COM 对象。
当然,还有很多内容,但这可能是一个可以让你更具体理解的例子。
答案3
答案4
COM 是一组 Windows 特定的技术,用于实现代码重用和互操作性,主要在二进制级别(不一定在源代码级别)。
20 世纪 90 年代初,比尔·盖茨不允许 Powerpoint 开发团队为 Powerpoint 产品实现自己的图表子系统,因为微软已经有了 Excel。因此,他们制定了一项规范,使其内部产品能够交换数据并调用彼此的函数。微软将这些 API 进行了通用化,并发布了它们以及许多其他代码设计指南。
观看这个 2006 年的视频:Tony Williams:COM 的共同发明者
我认为,现在到了 2012 年,COM 仍然是 WMI 和 Office 的核心。