代码之家  ›  专栏  ›  技术社区  ›  kizzx2

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

  •  5
  • kizzx2  · 技术社区  · 16 年前

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

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

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

    我怀疑这与封送和进程间对象传输有关?(不好意思,我真的是一个通信领域的笨蛋)

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

    3 回复  |  直到 13 年前
        1
  •  9
  •   Vagaus    16 年前

    COM+(组件服务)提供了许多现成的基础设施;例如,COM+提供事务、安全性、对象池和一些其他服务。

    当您在COM+下注册一个COM组件时,它将运行“进程外”;在这种模式下,您将保证在您的COM服务器及其客户端之间有一个代理。

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

    希望这有帮助。

        2
  •  4
  •   vineetkumar    13 年前

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

    COM+是Microsoft组件对象模型(COM)和Microsoft事务服务器(MTS)的发展。 分布式COM。使COM对象能够在另一台计算机上从使用该代码的计算机上实例化的协议。

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

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

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

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

        3
  •  3
  •   Randy Levy    16 年前

    同意上一篇文章。

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

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

    推荐文章