“传统”COM和COM +之间的区别(在组件服务中)

时间:2010-06-02 04:12:45

标签: windows com com+ component-services

通过“传统”方式,我的意思是在注册表中注册DLL。

似乎有另一种方法可以通过转到mmc->组件服务 - > COM +应用程序并添加.tlb文件来设置它。

我有一个支持这两种方法的COM库。安装时,它将自己在注册表中注册为COM组件,它工作正常。但是,当我使用组件服务方法添加.tlb文件时,行为似乎不同,并且它开始发出错误。

我怀疑它与编组和进程间对象传输有关? (对不起,我真的是COM领域的菜鸟)

有人能指出一个很好的资源来清除我的理解吗?

3 个答案:

答案 0 :(得分:9)

COM +(组件服务)提供了大量开箱即用的基础设施;例如,COM +提供事务,安全性,对象池和一些其他服务。

在COM +下注册COM组件时,它将运行“Out Of Process”;在此模式下,您可以确保在COM服务器与其客户端之间拥有代理。

关于COM +的更多信息,我能想到的最好的地方是MS官方网站:http://msdn.microsoft.com/en-us/library/ms685978(VS.85).aspx

希望这有帮助。

答案 1 :(得分:4)

COM是在本地计算机上使用的组件对象模型,但COM +是Com plus activex功能。意味着它可以远程使用。

COM +是Microsoft组件对象模型(COM)和Microsoft Transaction Server(MTS)的演变。 DCOM:分布式COM。允许COM对象在另一台计算机上使用代码

进行实例化的协议

MTS:Microsoft Transaction Server。 MS如何跨多个服务器协调事务。

COM +处理您以前必须自己编程的许多资源管理任务,例如线程分配和安全性。 COM +还通过提供线程池,对象池和即时对象激活,使您的应用程序更具可伸缩性

COM +可用于开发Windows的分布式应用程序。

如果您是应用程序程序员,您将编写组件并将它们集成为应用程序。 COM +主要是为Microsoft Visual C ++和Microsoft Visual Basic开发人员设计的。

答案 2 :(得分:3)

同意上一篇文章。

要添加的一件事:实际注册类型库(.tlb文件)对于COM来说也是正常的,不仅适用于COM +。 类型库由IDL编译器自动生成。它包含接口和对象的描述。

这样您就可以将COM组件“导入”到某个项目中,并且可以看到接口和对象的定义。