我为什么要学习COM?

时间:2009-12-20 12:23:29

标签: com uses

最近我在工作中听到了很多关于COM的事。我还了解到COM很老了。 COM已弃用。 COM没有前途。这些也是真的吗?

我想学习COM,因为我想知道它有什么大惊小怪,但我无法说服自己,这是花费这么多时间和学习它的坚实理由。

所以,任何人都可以告诉我:

  1. 我为什么要学习COM?
  2. 一旦我学习COM,我可以用它做什么?我的意思是它的应用程序。

4 个答案:

答案 0 :(得分:8)

我不认为COM很快就会消失。如果你想成为Windows专家,你必须了解它是如何工作的。

答案 1 :(得分:4)

学习COM(或者至少是 au fait 及其概念)意味着您可以与数千个现有组件集成,包括Microsoft Word和Excel。

我主要在Java域工作,但对COM有一点了解意味着我可以有效地与Word和Excel(特别是)进行交互,以编程方式创建/读取文档。我没有深入的知识,但我有一点点,并且这样可以大大提高我的生产力。

答案 2 :(得分:4)

你应该对COM有足够的了解,知道你不想再学习了。

COM的细节 - 特别是来自多线程或C ++应用程序 - 令人极为恼火,我不希望任何人(我自己也不了解它们,但我知道这一点很清楚)。

因此,如果您确实需要调用COM库,您应该学习足够的COM以便能够这样做,然后停止。理想情况下,使用诸如C#或Delphi之类的语言,其中一些(或希望大多数)细节相对透明地为您处理。

周围有很多COM库,但如果您觉得要使用它们,您应该查看其具体文档以了解如何执行此操作 - 它可能有一个合理的示例,您可以根据自己的需要进行调整没有太多的努力。如果没有,那么它显然不是很好,不应该使用。

答案 3 :(得分:4)

如果您是Windows开发人员,COM绝对值得学习至少某种程度。除了已经提到的其他内容之外,使用它的另一个常见情况是Internet Explorer的binary behaviorsBHOs的实现。它们都是使用IE和您的代码之间的COM接口实现的。

我还想推荐一些资源来学习COM:

  1. Don Box的Essential COM。它很好地描述了为什么COM就是这样,并且真正帮助您更深入地了解正在发生的事情。如果你花时间阅读这本书,那么你将对COM内部有一个基本的了解,这将很好地为你服务。
  2. 这两篇文章:{12} ...是对COM公寓特定主题的一次非常好的讨论,暗示MarkR的“令人难以忍受的刺激”(不公平,imho)答案。