转: 在VB中调用.Net托管程序集

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、付费专栏及课程。

余额充值