使用C#创建并注册COM组件 C#不能直接创建COM组件,因为其生成的DLL属于程序集,但可通过“使程序集COM可见”选项来支持COM。以下以一个实例说明如何通过C#创建、注册、注销COM组件。 创建COM组件: 首先新建项目,选择类库,解决方案名称为COMLib,编写一个类,同时需要为该类创建接口。注意类和方法必须为Public,并且接口和类都需要COM可见和Guid号,接口还需添加生成标志。实例代码如下。 namespace COMLib { [ComVisible(true), Guid("27541792-C5A4-41cd-8FB6-479DDE2F6F03")] //COM可见,并加上Guid public interface IMyCOM { [DispId(1)] //注意添加接口生成标志 double Add(double a, double b); } [ComVisible(true), Guid("53583B1A-6DA4-43aa-B139-95478BA29F1A")] //COM可见,并加上Guid //COM可见,可也在项目属性-应用程序-程序集信息,勾选使用程序集COM可见 public class MyCOM:IMyCOM { public double Add(double a, double b) { return a + b; } } } 其次,为了能让生成的DLL能够进行COM注册,需要进行强名称签名。打开COMLib项目属性,选择签名,勾选为程序集签名,通过下拉列表选择新建,弹出创建强名称密钥窗口,输入名称,不勾选使用密码保护密钥文件。
2/ 3
创建完成后COMLib项目中将出现后缀为.snk的签名文件。
3/ 3
最后,编译COMLib项目,生成COMLib.dll文件,完成COM组件的制作。 注册COM组件: 如将COMLib.dll放置D盘根目录下,以管理员身份运行CMD,提示符切换至C:\Windows\Microsoft.NET\Framework\v2.0.50727,输入“RegAsm D:\ COMLib.dll /tlb: COMLib.tlb /codebase”,回车后得到如下图所示结果,表明注册成功。同时D盘根目录还会生成COMLib.tlb文件。
卸载COM组件: 与注册过程基本相同,只需将命令改为“RegAsm /u D:\ COMLib.dll /tlb: COMLib.tlb /codebase”。