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”

  • 相关阅读:
    POJ 3126 Prime Path
    POJ 2429 GCD & LCM Inverse
    POJ 2395 Out of Hay
    【Codeforces 105D】 Bag of mice
    【POJ 3071】 Football
    【POJ 2096】 Collecting Bugs
    【CQOI 2009】 余数之和
    【Codeforces 258E】 Devu and Flowers
    【SDOI 2010】 古代猪文
    【BZOJ 2982】 combination
  • 原文地址:https://www.cnblogs.com/JerryTian/p/1911123.html
Copyright © 2011-2022 走看看