如何编写和注册.Net的Com组件

Com+组件在vb6.0和vc++的年代是风靡一时的,当前.net framework的构件系统,因为其无需注册等优点渐渐取代了Com+的地位,但一些系统由于历史问题,还是需要com+支持的,其实在.net中编写com+组件也是一件非常简单的事情.

在vs2003中,要想生成com+组件,其实额外的工作只有一个,就是对项目按下图所示,  



程序其他部分和其它没有差别,不再赘述

重点在于如何注册.net写的com+组件

网上有一些说法,但我按照其操作,均未成功,或者在程序访问的时候,出现权限问题。其实.net 写的com+组件不能直接用regsvr32.exe来注册,因为这样一来,系统会缺少元数据,我们首先需要用.net framework提供的工具regasm,将该com组件所需元数据写入注册表中,注册表允许 COM 客户程序以透明方式创建 .NET Framework 类。类一经注册,任何 COM 客户程序都可以使用它,就好像该类是一个 COM 类。在编译好的目录中,com组件会多产生一个同名的.tlb文件,regasm的用法如下:regasm /tlb: /tlb:Encrypter.tlb Encrypter.dll,此步骤经过我的实验,不可或缺。

然后,就可以利用组件服务将.net com组件设置为com服务了。设置过程中,需要注意下权限的设置就行了。

 

有关tlb文件的说明如下:

TLB是一种OLE(或ActiveX)定义文件,它包括常数、接口(Interface)、类等的定义。你可以在VB的集成环境的Project|Reference中将TLB文件加入项目,然后在Object Browser中看到该文件中包括哪些常数、接口、类,而每个类又包括什么方法和属性。微软提供的各种SDK中通常包括一个或数个TLB文件以方便编程。你也可以制作TLB文件,首先编写一个ODL文件(在VC++的帮助中有语法说明),然后使用MKTYPLIB(在VB光盘上有)编译生成TLB文件。类似的文件,还有Office所提供的OLB文件。

察看http://www.dotblogs.com.tw/huanlin/archive/2008/04/23/3196.aspx能获得更过得信息

posted @ 2007-12-17 17:43  Robin Zhang  阅读(5436)  评论(2编辑  收藏  举报