zoukankan      html  css  js  c++  java
  • 转:C# .NET中调用VB编写的DLL代码事例(我做了些修改)

     
    .NET中如何调用VB6编写的DLL。

      本文以C#为例,自己实践了一下。希望对遇到相关问题的人有所帮助。

      本示例分成两部分,第一,生成vb的dll。第二,在C#中进行调用。

      第一部分:

      1.首先在VB中选择ACTIVX DLL工程类型。如图:

      

      2.然后修改工程名,class文件名,添加2个函数,如下图:

      

      方便copy,代码如下:

      Public Function FncTestDLLForDotNet(instr As String) As Integer

      FncTestDLLForDotNet = 9

      End Function

      Public Function FncTestDLLForDotNet2(instr As String) As Integer

      FncTestDLLForDotNet2 = 99

      End Function

      3.然后从文件菜单中选择生成TestDLLProject1.dll,即可生成DLL。

      下面为第二部分:

      1.打开vs2005,选用语言c#,工程类型为一个window application即可。

      在form上添加一个按钮。如下图:

      

    我加的: 把TestDLLProject1.dll拷贝到System32文件夹下

      2.在解决方案资源管理器中,右键点引用,在弹出的对话框中选择浏览,找到System32里的TestDLLProject1.dll,选中它,点确定。即可加入到引用中。如下图:

      

      添加完后,会看到在引用中已经增加了对这个dll的引用,如图:

      

      3,最后一步了编写按钮的代码,来调用这个vb的dll中的方法。

      双击form上的button,在button的click事件中加入如下代码:

      TestDLLProject1.TestClass1 tc = new TestDLLProject1.TestClass1();

      string ss = "kkkk";

      int i = tc.FncTestDLLForDotNet(ref ss);

      int i2 = tc.FncTestDLLForDotNet2(ref ss);

      MessageBox.Show(i.ToString() + " " + i2.ToString());

      好,按ctrl+shift+b,编译工程,再按f5运行,点击按钮,如下图,成功弹出结果。

      如图:

      

     如果要移植到其他计算机上,需要把TestDLLProject1.dll复制到该机的System32文件夹下,并在“运行”中使用regsvr32 TestDLLProject1.dll这条命令来注册该组件(可能有的组件不需要注册吧),才能成功移植到其他计算机。否则会报错“检索COM类工厂中CLSID为{ 一串字符 } 的组件时失败,原因是出现以下错误:80040154”

  • 相关阅读:
    面试题47题
    深度学习面试
    神经网络训练中的梯度消失与梯度爆炸
    Softmax函数与交叉熵
    sourceTree 添加 ssh key 方法
    request.form()和request()的区别
    C#中Request.ServerVariables详细说明及代理
    Page_Load事件与IsPostBack属性
    CSS中position的absolute和relative用法
    读取游标
  • 原文地址:https://www.cnblogs.com/Tmouse/p/1712819.html
Copyright © 2011-2022 走看看