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

本文介绍如何使用.NET开发COM组件,并将其导出为可供VB等语言调用的形式。内容包括定义接口、实现接口的派生类、将.NET组件转换为COM组件的过程及在VB中调用这些组件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
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)创建对象调用
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值