首页 >> VB.Net >> 正文
使用.NET2.0编写COM组件供VB调用-VB.NET
  来源:Dotnet频道 作者:采集 时间:2008-3-10  

  这个提法不太合理,个人觉得。只是工程部门原来的程序都是跑在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  
  (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)创建对象调用


上一篇:关于VB提示ByRef参数类型不符的分析-VB.NET
下一篇:运用VB.net创建Web服务访问程序-VB.NET

本篇新闻:使用.NET2.0编写COM组件供VB调用-VB.NET

相关新闻
相关评论
 
评论表单加载中...
 
VB.Net文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   编程入门网-介绍.NET中的委派(Delegates)之三
   编程入门网-介绍.NET中的委派(Delegates)之二
   编程入门网-介绍.NET中的委派(Delegates)之一
   编程入门网-用Visual C#实现文件下载功能
   编程入门网-用C#写简单的CGI程式
最新文章
   编程入门网-介绍.NET中的委派(Delegates)之三
   编程入门网-介绍.NET中的委派(Delegates)之二
   编程入门网-介绍.NET中的委派(Delegates)之一
   编程入门网-用Visual C#实现文件下载功能
   编程入门网-用C#写简单的CGI程式
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号