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

来源:csdn 作者: 2006-10-27 出处:pcdog.com

.net  
下一页 1 2 

  这个提法不太合理,个人觉得。只是工程部门原来的程序都是跑在VB上,调用的dll为ATL COM组件; 而现在的新功能开发都建立在.net2003上,于是便出现了 如题所述 的情况,怎样在.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
更多内容请看PCdog.com--.NET实用开发专题
下一页 1 2 
上一篇:Viusal C++.NET 2003 的优化代码
下一篇:避免覆盖通过继承得到的名字