我想学习COM。我该怎么办?

时间:2009-06-05 07:30:00

标签: c++ com

我是一名刚毕业的计算机科学学士。就像今天的大多数学校一样,他们不再教学生C或推进C ++(只有C ++的入门课程......有教学指针)。课程中规定的标准编程语言是C#(.NET堆栈)。

就在最近,我被聘为初级软件开发人员。 95%的代码库都是用C ++编写的,我们的产品使用的是COM / DCOM。另外5%是在.NET中。我目前的职责是维护一个用.NET(ASP.NET)编写的项目,我不需要学习C ++和其他技术YET。但我希望尽快学习COM,以便我可以帮助其他项目。

所以我正在寻求这个社区关于如何学习COM的建议。我目前的问题如下:

  1. 任何所需的阅读? (先决条件)
  2. 学习COM基础知识的好网站?
  3. 一种简单的程序,真正理解COM的“目的”(也许是一个聊天程序?)
  4. 谢谢! :)

    PS:我应该将其标记为社区维基吗?

8 个答案:

答案 0 :(得分:9)

要了解COM背后的基本思想,我从未遇到过Dale Rogerson的Inside COM更好的事情。这是一本旧书,但它非常清楚地解释了为什么需要COM以及如何实现它,你可以在亚马逊上获得二手副本。

至于Don Box的书,我已经阅读了所有这些书,我认为他们非常糟糕。 Box neverr解释了他所描述的代码的动机并使用了非常不切实际的例子。但我意识到这是少数意见。

答案 1 :(得分:9)

我在我的图书馆里有这些关于COM的书,我建议:

  1. 1995 - Kraig Brockschmidt - Inside OLE 2nd Edition
  2. 1998 - Don Box - Essential COM
  3. 1999 - George Shepherd - Inside ATL
  4. 2000 - Andrew Troelsen - COM和ATL 3.0开发人员研讨会
  5. 2006 - Christopher Tavares - ATL Internals:与ATL 8合作,第2版
  6. 如果你说你有一些.net背景,那就是

    1. 2003 - Julian Templeman - 使用Microsoft .NET进行COM编程
    2. 希望这有帮助。

答案 2 :(得分:8)

关于COM的Don Box这本书是权威性的参考书。 Amazon link

谨防是一个艰难的阅读,但它涵盖了深刻的一切。请记住,正如Don所说...... COM很爱。

我不相信你能找到很多网站,很多时候COM是最新技术,但是如果你忘了它就相信我......那就更好了!

答案 3 :(得分:5)

答案 4 :(得分:3)

这里已经提到了一些经典书籍。我还将参考Mary Kirtland设计基于组件的应用程序。

它已经陈旧(正如大多数提到的标题所示),主要针对企业开发人员。它有一个很好的COM概述,没有深入杂草,讨论3层开发,讨论MTS(该书早于COM +)及其用途。它还讨论了设计数据和业务组件,并介绍了如何开发示例应用程序。

我不确定它的老化程度,但我记得10年前这是对COM世界的一个很好的介绍。这本书的优点在于它假定你对这个主题一无所知。它很好地平衡了理论与实际实施的逻辑进程。我认为那里也有一些ASP(经典)......所以对于所有神圣的爱,跳过这一部分。 :)

我记得GUI博士有一些很棒的COM文章(例如GUI博士对COM的温和指南)但无法追踪它们。

答案 5 :(得分:2)

阅读Don Box书籍,了解有关COM的所有想法(并忘记)。

至于COM的目的:C ++为您提供(源)代码重用,COM为您提供(已编译)组件重用。

答案 6 :(得分:1)

我会推荐这本书ATL Internals,它可能会有点旧,但它会教你COM的基本原理。正如tho海报评论的那样,Don Box也很好。

答案 7 :(得分:0)

很明显,但你去过microsoft site for COM了吗?这就是我开始的方式,后来当我坚持做某事时我只是用谷歌搜索信息(这很多,COM在某些方面很讨厌)。我也问了很多我的同事,没有什么比你在代码中看到的一些伏都教的面对面解释更好