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

 
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) 创建对象调用
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值