微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 使用.NET2.0 编写COM组件供Visual Basic调用

使用.NET2.0 编写COM组件供Visual Basic调用

时间:09-12 来源:互联网 点击:

1.定义接口

Com是通过抛出接口让外部应用调用的,每个接口、组件都有一个Guid,在.Net中开发Com组件也不例外。

[Guid(“0bb13346-7e9d-4aba-9ff2-862e0105489a”)]

public interface IMyService

{

//定义接口方法或者属性,每个方法或属性都有一个DISPID属性,供VBScript等使用

[DispId( 1 )]

void Method1( args … );

}

2.实现接口的派生类

//Guid属性定义组件的Guid

//ProgID定义Com组件的ProgID

[Guid(

ba0a3019-f0d8-4406-8116-f80d5515c686 ) ,

ProgId(ClassNamespace.MyService),

ClassInterface(

ClassInterfaceType.None)]

public class

MyService : IMyService

{

…… //实现代码部分

}

3.将.Net装配件转换为公有装配件

(1)创建强名字

sn –k mykey.snk

并将强名字拷贝到工程目录下面

在AssembyInfo.cs修改对应的配置

[assembly: AssemblyKeyFile(“../../mykey.snk”)]

(2)导出类型库

为了在VB中使用,必须使用tlbexp.exe导出Com类型库。

tlbexp SisCalLib.dll /out:SisCalLib.tlb

(3注册装配件

RegAsm MyService.dll

(4)将装配件加入GAC

gacutil -i MyService.dll

注意:该步骤不是必须的。

(5)在AssembyInfo.cs修改COM对外可见性配置

// 将 ComVisible 设置为 false 使此程序集中的类型

// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,

// 则将该类型上的 ComVisible 属性设置为 true。

[assembly: ComVisible(true)]

// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID

[assembly: Guid(e011ed16-93a3-41aa-8375-399fa259b935)]

经过上面的工作,就将一个.NET装配件转化为COM组件。

4.在VB中调用生成的COM组件(dll)

1)工程->引用

2)创建对象调用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top