6

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

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

那么,谁能告诉我:

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

4 回答 4

8

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

于 2009-12-20T12:37:49.987 回答
4

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

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

于 2009-12-20T12:26:13.243 回答
4

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

COM 的细节——尤其是来自多线程或 C++ 应用程序的细节——非常令人恼火,我不希望它们出现在任何人身上(我自己不了解它们,但我知道的足够多)。

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

周围有很多 COM 库,但是如果您想使用其中的一个,您应该查看它的特定文档以了解如何执行此操作 - 它可能有一个合理的示例,您可以简单地适应自己的使用而无需太多努力。如果没有,那么它显然不是很好,不应该使用。

于 2009-12-20T12:26:33.567 回答
4

如果您是 Windows 开发人员,那么 COM 绝对值得学习至少在一定程度上。除了已经提到的其他情况之外,另一个使用它的常见情况是在Internet Explorer的二进制行为BHO的实现中。它们都是使用 IE 和您的代码之间的 COM 接口实现的。

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

  1. Don Box 的基本 COM。它很好地描述了 COM 为何如此,并且真正帮助您更深入地了解正在发生的事情。如果你花时间阅读这本书,那么你将对 COM 内部有一个基本的了解,这对你很有帮助。
  2. 这两篇文章: { 1 , 2 } ...对 COM 公寓的特定主题进行了很好的讨论,在 MarkR 的回答中被暗示为“极度恼火”(不公平,恕我直言)。
于 2009-12-20T15:17:35.407 回答