何时以及为什么我们需要使用COM?

时间:2011-09-14 08:47:17

标签: c++ winapi com

我想知道何时以及为何使用COM?

请告诉我在哪种情况下我需要使用com而不是普通的DLL。

2 个答案:

答案 0 :(得分:6)

首先,值得一提的是COM是一项相当古老的技术。它远远早于.NET,它有时提供相同的功能。但是,与普通DLL相比,它具有一些优点,例如:

  1. 它没有功能界面,但是没有功能界面。您可以创建对象而不是调用导出的函数。
  2. 它支持系统安全设置,因此您可以通过Windows安全设置管理对COM类的访问。
  3. 它跨越进程边界 - COM服务器可以在用户的​​进程中,也可以在单独的进程中。
  4. 它越过机器边界,AKA DCOM。
  5. 它跨越语言边界。 COM的协议是二进制的,因此支持它的每种语言都可以使用COM组件,而不管这些组件的创建语言是什么。
  6. 有许多语言支持COM,您可以在其中轻松创建和使用COM对象。
  7. 这只是冰山一角。虽然过时了,但COM在Windows中被广泛使用。这些日子是否适合您使用它是另一回事 - 这实际上取决于您的具体需求。但如果你是一名Windows程序员,那么无论如何它都是值得熟悉的。即使你没有生产任何COM产品,你很可能会消费它。

答案 1 :(得分:1)

您可以在各种上下文中使用COM,例如:

  1. 与msxml3 / 4/6 XML API交互(使用COM对象);

  2. 嵌入Internet Explorer WebBrowser控件(使用COM对象);

  3. 实现Explorer Shell扩展,例如上下文菜单(编写和使用COM对象);

  4. 实现拖放功能(编写和使用);

  5. 使用基于Vista的文件打开/关闭对话框(消费);

  6. 使用基于Windows的功能区API(使用)。