我对COM+和DCOM很感兴趣。我知道微软不鼓励你使用这些工具(指用C/C++原生,事实上没有太多可用的文档),但我想学习使用这些技术,比如将Internet Explorer嵌入到C程序中。
我想也许我可以找到与此相关的人或者了解这项技术的人。
从哪里开始?有什么想法吗?有什么示例(如Hello World DCOM)吗?
我对COM+和DCOM很感兴趣。我知道微软不鼓励你使用这些工具(指用C/C++原生,事实上没有太多可用的文档),但我想学习使用这些技术,比如将Internet Explorer嵌入到C程序中。
我想也许我可以找到与此相关的人或者了解这项技术的人。
从哪里开始?有什么想法吗?有什么示例(如Hello World DCOM)吗?
当唐·博克斯出版了《Essential COM》时,COM的基础问题已经开始显现了。COM并没有太大的缺陷,但开发社区的需求已经演变并超出了COM的能力范围,需要进行严重的改进。
.NET就是为解决COM在“类型信息”等方面的局限性而诞生的。在《Effective COM》出版仅几年后,社区的关注点转向了.NET。因此,好的COM培训材料现在很少,并且可能会一直如此。
所以,COM并没有损坏,它在使用它用于的事物上工作得非常出色(这就是为什么Explorer仍在使用它)。但是,对于需要解决的许多问题,它不再是最佳解决方案。
总之:
我建议先学习《Essential COM》中的基础知识,然后阅读其他许多可用的好的ATL图书(没有强烈的偏好),然后使用其他资源,如MSDN或当然 - Stack Overflow,来覆盖您特别感兴趣的领域。
如果你更喜欢不依赖纸质资源,请继续从网络中学习ATL。但有些书值得老式阅读,例如《Essential COM》。
祝你好运。
COM、COM+ 和 DCOM 都是完全不同的东西。目前,学习COM的理由非常少,学习DCOM的理由几乎没有。我唯一能想到的理由是,如果你必须维护或集成旧组件。COM+仍然被使用,因为它允许在进程外托管组件,并具有分布式事务管理等好处。
编写一些COM的最佳方法是使用ATL。在.NET中,COM+称为Enterprise Services。
我所知道的关于COM的最佳书籍是Don Box的Essential COM和Tim Ewald的COM+ book也很棒。
从“Inside COM”开始,然后转向“Inside DCOM”,最后阅读“Essential COM”。这样你就能掌握COM了。Inside COM和Inside DCOM这两本书都是微软出版的。对于想全面了解COM/DCOM的人来说,这是非常好的书籍。
如果您要处理或扩展各种Windows API(如shell扩展程序、脚本宿主等),仍然可以使用COM。
《Essential COM》(Box)和《ATL Internals》(Rector和Sells)是很好的资源。《Effective COM》(Box等人)也还可以。
如果您真的想全面了解COM,请尝试获取庞大的《Inside OLE》(Brockschmidt)副本。
在DCOM方面,《Distributed COM》(Eddon,Eddon)还可以,对于COM+,《Inside COM + Base Services》(Eddon,Eddon)也不错。
即使一些所谓的“纯”C++书籍中也有关于COM的部分。Matthew Wilson的《Imperfet C++》中有一些有用的内容,可以看到其内部运作方式,他的《Extended STL》书中还有几章关于如何将COM适配到STL集合中。
如果您想了解更多有关编写COM服务器的信息,可能需要加强对ATL的学习。前述的《ATL Internals》是必备的。尽管名称听起来很普通,《Beginning ATL COM》中也有一些有用的内容。
在学习过程中,将COM与.NET进行对比也可能会有所帮助。《.NET and COM Interoperability Handbook》是一个较长的读物,但其中有一些有用的内容。此外,我建议查看《Shared Source CLI Essentials》,以便对比这两种技术。
希望有所帮助。
Essential COM是专门为在C++中实现或使用COM组件而设计的,而不需要使用IDE、框架或库进行帮助。
例如,在VB或Delphi中使用COM非常简单,这些语言会将COM特定的细节隐藏起来,不会让应用程序员感到繁琐。而在C++中,你通常会使用一些尝试抽象出这些细节的类库...Essential COM会告诉你这些细节是什么(并在此过程中实现了自己的库/框架)。
实际上,如果你想更深入地了解COM,微软出版了一本关于COM及其工作原理的书籍... http://www.amazon.com/Inside-Microsoft-Programming-Dale-Rogerson/dp/1572313498/ref=sr_1_2?ie=UTF8&s=books&qid=1243029018&sr=8-2