我为什么要学习COM?

我为什么要学习COM?,com,uses,Com,Uses,最近我在工作中听到很多关于COM的事情。我还了解到COM是旧的。COM已被弃用。COM没有未来。这些也是真的吗 我想学习COM,因为我想知道它有什么大惊小怪之处,但我无法说服自己,这是花这么多时间学习它的一个坚实理由 那么,有谁能告诉我: 我为什么要学习COM 一旦我学会了COM,我可以用它做什么?我指的是它的应用 学习COM(或至少熟悉其概念)意味着您可以与数千个现有组件集成,包括Microsoft Word和Excel 我主要在Java领域工作,但对COM有一点了解意味着我可以有效地与Wor

最近我在工作中听到很多关于COM的事情。我还了解到COM是旧的。COM已被弃用。COM没有未来。这些也是真的吗

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

那么,有谁能告诉我:

  • 我为什么要学习COM
  • 一旦我学会了COM,我可以用它做什么?我指的是它的应用
  • 学习COM(或至少熟悉其概念)意味着您可以与数千个现有组件集成,包括Microsoft Word和Excel


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

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

    <> Pcom的细节——特别是从多线程或C++应用程序——是非常令人恼火的,我不希望他们在任何人(我自己不知道,但我知道足够的了解)。 因此,如果您确实需要调用COM库,您应该学习足够的COM以便能够这样做,然后停止。理想情况下,使用C#或Delphi之类的语言,其中一些(或希望大部分)细节可以相对透明地为您处理


    有很多COM库,但是如果你觉得你想使用它,你应该看看它的具体文档来了解如何做到这一点-它可能有一个合理的例子,你可以简单地适应自己的使用而不需要太多的努力。如果没有,那么它显然不是很好,不应该使用。

    我只是觉得COM不会很快消失。如果你想成为一名windows专家,你必须了解它的工作原理。

    如果你是一名windows开发人员,COM绝对值得至少在一定程度上学习。除了前面提到的其他情况外,它的另一个常见使用情况是Internet Explorer的实现和。它们都是使用IE和代码之间的COM接口实现的

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

  • 唐·博克斯。这是一个很好的描述为什么COM是这样的,并真正帮助你得到一个正在发生的更深入的理解。如果您花时间阅读这本书,那么您将对COM的内部结构有一个基本的了解,这将很好地为您服务
  • 这两篇文章:{,}……是对COM公寓这一特定主题的非常好的讨论,在MarkR的回答中被暗指为“极度恼人”(不公平,imho)

  • 您是否曾经使用MS Word并在文档中放置过图片?如果是这样的话,你使用的是COM。在我看来,令人极度恼火的声音是夸张的。COM单元(我假设这就是您从多线程评论中得到的)和编组没有那么复杂,特别是如果您花时间阅读正确的资源。另外,在C++中,你可以使用ATL作为抽象层来隐藏大多数样板文件。但最好还是不要担心它们:)Essentail COM的第一章对COM试图解决的问题给出了一个很好的概述——即使你浏览了本书的其余部分,也绝对值得一读。