COM,COM +,DCOM,从哪里开始?

no_*_*ord 30 c c++ com dcom com+

我很好奇COM +,DCOM.我知道MSFT不鼓励你原生使用这个工具(意思是用C/C++,实际上没有很多文档可用)但我想学习使用这些技术,比如将Internet Explorer嵌入到C程序中.

我想也许我可以找到那些使用过这个或那个知道这项技术的人.

从哪儿开始?有任何想法吗?任何例子(如Hello World DCOM)?

Eur*_*lli 36

如果你认真学习COM,Don Box的"Essential COM"肯定是绝对的"必读".COM可能令人困惑,在我看来,Don Box是为数不多的实际"得到它"的人之一.

"Essential COM"中的示例代码在C++中.你不会在C中找到许多支持COM的书.你可以用C编写COM,但这将是非常非常痛苦的.COM针对C++开发进行了优化.

这本书不完美也不"完整".本书略读了一些(授予的,有点深奥的)领域.例如,这本书就像"绰号"一样有1 1/2页(我从来没有见过对我满意的僧侣的待遇).我认为这本书是基础书.

其次,在现实生活中,您可能希望使用ATL等支持库,而不是直接编写所有COM粘合剂.即使在基本设置中,有太多方法可以在COM中犯下微妙的错误.ATL将为您提供良好的模式并为您实施无聊的代码.在学习中,最好使用普通的C++.

有很多关于ATL的书籍,其中有几本很好.我知道自从VC++ 6的旧时代以来ATL已经发生了很大的变化,但我没有第一手知识:遗憾的是,我使用的大部分COM代码都在VC6中永远锁定了C++的味道.

确保您获得的任何书都是针对您正在使用的Visual Studio和/或ATL版本编写的.

COM书籍的一些背景:

请注意,有很多书籍误解了COM,或者专注于错误的事情.在这方面,旧书更糟糕.最初几本书中的一些书对COM的处理只不过是使OLE工作所需的管道细节("对象链接和嵌入",这就是允许您将电子表格范围拖放到Word文档中的内容).因此,很多材料都非常令人困惑.人们意识到OLE不是那么重要而且COM真的是那么花了一段时间.

当Don Box发布"Essential COM"时,COM基础上的裂缝开始变得明显.COM没有任何可怕的缺陷,但是开发社区的需求已经发展并且超出了COM可以做的事情而没有进行认真的改造.

.NET的诞生源于解决COM中的局限性,特别是在"类型信息"领域.就在"有效COM"发布几年后,社区的注意力转移到了.NET.因此,良好的COM培训材料现在可能会永远受限.

因此,COM没有被破坏,它对于它所使用的东西非常有效(这就是Explorer仍然使用它的原因).对于今天需要解决的许多问题,它不再是最佳解决方案.

综上所述:

我推荐基本的"Essential COM".然后,可以获得许多优秀的ATL书籍(没有强烈的偏好),然后使用其他资源,如MSDN或 - 当然 - Stack Overflow,以涵盖您特别感兴趣的领域.

如果您宁愿避免依赖死树种类的资源,请继续从网上学习ATL.但是有些书值得用老式的方式阅读 - 而"Essential COM"就是其中之一.

祝好运.


JP *_*oto 10

COM,COM +DCOM是完全不同的三件事.在这一点上,没有理由学习COM,几乎没有理由学习DCOM.我能想到的唯一原因是您是否必须维护或集成遗留组件.COM +仍然使用,因为它允许进程外托管组件和分布式事务管理等好东西.

开始编写某些COM的最佳方法是使用ATL.在.NET中,COM +称为企业服务.

我在COM上知道的最好的书是Don Box的Essential COM,Tim Ewald的COM +书也很棒.

  • Windows 8的新WinRT核心基于COM.对COM有很好理解的商业程序员多年来一直有很高的需求,并且将在未来的许多年里继续需求. (5认同)

gas*_*128 5

我编制了一份书籍清单,应按此顺序阅读:

  1. 戴尔罗杰森的"内心COM",这应该是你的第一本书.它解释了引用计数,接口,IUnknown,组件,idl,IDispatch,自动化类型和公寓的基础知识.在本书中,您会注意到制作组件需要相当多的代码,并且您可以轻松跳过"发布",这会导致资源泄漏.这本书也缺乏一些细节.
  2. 来自塔瓦雷斯的'ATL Internals'.ATL帮助您将客户端用作制作COM组件.有了智能指针(例如CComPtr),这些天很难让引用计数错误.ATL还有助于用c ++制作组件.不幸的是,ATL在宏中隐藏了许多功能,并且具有实现IUnknown的反直觉方式.另一种选择可能是'Inside ATL'.
  3. 来自Don Box的'Essential COM'.这本书经常被提到,但它不是一本好的初学者书.它错过了整体情况,但其细节很好(例如,idl中'size_is'和'length_is'之间的差异).
  4. "了解ActiveX和OLE:开发人员和管理人员指南".这本书涉及一些更为深奥的界面,如IPersist,IStorage; IMoniker等,但没有详细介绍.

请注意,COM有点旧技术,但对于本机开发人员来说仍然可行.