C#生成基于COM的DLL供VB调用

用Visual C#生成的DLL文件已经和以前的DLL文件有了本质上的区别。VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件。但用Visual C#编译器生成的受托管代码虽然也是二进制文件,但不是可以直接供计算机使用的原始代码,实质上是一种中间语言(IL)代码,需要经过NGWS (Next

Generation Windows Services) runtime的即时编译器(即JIT)进行编译。

 

 

一 新建项目

打开 VisualStudio2008 ,新建一项目,取名CSharpCOMDemo,项目类型【Visual C#】-【类库】

 

新建一个类取名为ClassMath,输入如下代码

 

 

注意类上的属性,对com可见和生成com类型。

 

using System.Runtime.InteropServices; namespace CSharpCOMDemo { [ComVisible(true)] [ClassInterface(ClassInterfaceType.AutoDual)] public class ClassMath { public ClassMath() { } public int lmSub(int a,int b) { return a - b; } public int lmAdd(int a, int b) { return a + b; } } }

 

二 生成项目

修改项目属性,使项目生成的同时生成 tlb类型库

右键点击项目-【属性】-【生成】-【为COM互操作注册】前打勾

 

这里也可点击【签名】为程序集签名。签名方法也比较简单

操作方法:【签名】-【为程序集签名】打勾,选择密钥文件即可。如果没有密钥文件,这里也可方便地新建一个密钥文件。

本例不作签名。

 

   

三 注册类型库

 

    输入regasm CSharpCOMDemo.dll /tlb: CSharpCOMDemo.tlb /codebase,将类型库导入到注册表。提示成功注册了类型,说明操作成功,此时TestCom .dll可以作为一个com来使用。

四 添加dll到GAC(全局程序集缓存 )

    输入gacutil /i CSharpCOMDemo.dll,将此.net程序集添加到GAC。将程序集添加到GAC后以让系统管理员通过用户权限来控制Assembly的访问。本例也不做添加。

 

 

 

 

你可能感兴趣的:(C#,assembly,dll,vb,Delphi,generation)