Chinaunix首页 | 论坛 | 博客
  • 博客访问: 356222
  • 博文数量: 102
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 1116
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-29 16:21
文章分类

全部博文(102)

文章存档

2014年(10)

2011年(1)

2008年(2)

2007年(89)

我的朋友

分类: C#/.net

2014-07-04 21:38:35

一、VB.net操作步骤: 
1.安装InterOP Forms Tookits (适用于2005,2008)
  安装之后visual studio的工具菜单上面会有一个Generate Interop Form Wrapper Classes子菜单;

  在.net的新建项目下面(Visual Basic.net)会有两个VB6Interop forms模版,该工具只对VB.net语言有用;
  一个模版是带完整.net窗体的组件,另一个是自定义组件,类似于OCX;
  1)带完整.net窗体组件
     新建-->项目-->VB6Interop forms Libaray,自动添加一个窗体InteropForm1,然后可以在窗体上添加各种控件,打开代码窗口,加入想VB6公开的各种属性、方法、事件;

     这需要添加标签来说明
     说明修饰的方法是类的构造函数,缺省无参的New()可以不加该标签,该标签主要用来修饰那些重载的构造函数;如
     public sub New(byval flag as string)
 me.new()
        .......
     end sub

     修饰方法;
     修饰属性;

     修饰事件;事件必须定义为代理类型;
     public event SayHello as HelloEvent
     public delegate sub HelloEvent()

     定义完之后使用“工具”->"Generate Interop Form Wrapper Classes"菜单自动生成所有该种类的包装类,我们可以看到,对重载构造函数的包装名称改为了initialize;
     点击生成,然后使用gacutil.exe /i 添加dll到全局程序集缓存,使用regasm 来注册程序集;

   二、VB6.0引用

     在VB6中首先要引用Microfost.Interop Form Tookits Library和该dll(如helloworld.dll);
     如果带有事件,定义 dim withevents hello  as helloworld.dll
       set hello=new helloworld
       hello.initialize("Stringparameter") 如果有重载构造函数的话;
     注意:该控件不能在Form_Load事件中new ,另外,由于.net dll所生成窗体是由InteropToolbox 管理的,VB6不能确定它们何时关闭,因此需要在VB6中定义全局变量   

    public InterManager As New InteropToolbox

    在开始的时候使用InterManager.EventMessenger.RaiseApplicationStartedupEvent,结束时使用InterManager.EventMessenger.RaiseApplicationShutdownEvent告诉   InteropToolbox .net组件的声明周期;

三、部署组件

1.部署和安装 使用InteropForms or Interop UserControls的VB6程序

  使用.net的安装和部署项目,将VB下Exe程序(以及相关依赖项)加进来,同时将.net下dll加进来,设置dll的register属性为vsdraCOM(在安装期间注册程序集)

 同时使用项目属性中的系统必备项(Prerequisites)将.net FrameWork以及Microsoft InteropForms Toolkit 2.0 加入,即可生成;

2.单独部署程序集  

在.net安装项目下添加Gacutil.exe和regasm.exe,同时制定自定义操作gacutil /i  和regasm.exe 在安装时执行;同时添加系统必备项Microsoft InteropForms Toolkit;如果不创建安装文件,直接使用Gacutil.exe和regasm.exe命令即可,客户端同时需要安装Microsoft InteropForms Toolkit 2.0

3.使用Msbuild.exe

还可以将.net FrameWork以及Microsoft InteropForms Toolkit 2.0 用msbuild.exe打包成setup文件然后在系统必备项(Prerequisites)中选择,效果与同时选中两项相同;
有关msbuild.exe的用法我也不是很了解,有各种XML配置,有兴趣的话请自行研究;

小结:
     Microsoft InteropForms Toolkit 工具提供了制作VB可以调用的.net类型库和组件的便利途径,但是它只能用VB.net来开发,C#不能使用该工具,和用C#直接开发相比,VB客户端都不要安装.net框架,使用起来感觉工作量差别不大,关键在于开发者对各自的熟悉程度。

 

阅读(1145) | 评论(0) | 转发(0) |
0

上一篇:《设计模式精解》学习笔记

下一篇:没有了

给主人留下些什么吧!~~