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

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

那么,谁能告诉我:

  1. 我为什么要学习 COM?
  2. 一旦我学习了 COM,我可以使用它做什么?我指的是它的应用。
有帮助吗?

解决方案

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

其他提示

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

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

您应该对 COM 了解得足够多,知道您不想再了解更多了。

COM 的细节——尤其是来自多线程或 C++ 应用程序的细节——令人极其恼火,我不希望任何人都使用这些细节(我自己并不了解它们,但我足够了解这一点)。

因此,如果您确实需要调用 COM 库,您应该了解足够的 COM 知识才能做到这一点,然后停止。理想情况下,使用 C# 或 Delphi 等语言,其中一些(或希望大部分)细节可以相对透明地为您处理。

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

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

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

  1. 唐·博克斯 基本COM. 。它很好地描述了为什么 COM 是这样的,并且确实可以帮助您更深入地了解正在发生的事情。如果您花时间阅读本书,那么您将对 COM 内部结构有一个基本的了解,这对您很有帮助。
  2. 这两篇文章:{ 1, 2 ...是对 COM 公寓特定主题的非常好的讨论,在 MarkR 的回答中被暗示为“极其令人恼火”(不公平,恕我直言)。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top