VB6生成的DLL在Visual Studio 2022中的引用

       自己制作引用dll也是新手,在不懈查询和试验下,最后问了下人终于成功了。但是网上关于VB6 dll的文章很少,所以写下来和大家分享。

     VB6制作dll的内容这里就不再重复了。

      第一次VB6制作成了dll,然后注册引用,发现大部分内容没有!还以为是dll内的类模块有错,所以只显示了一个类模块。原来是类模块的属性没有设置。

     类模块也有属性:属性窗口中找到Instancing然后将private私有改为MultiUse常用的选择。如果选用GlobalMultiUse就会让其中的函数像全局函数,有点静态类的感觉。

     然后从XP32位机拷贝dll到另一台计算机上,这台是64位的WIN11计算机,安装的Visual Studio 2022准备使用这个dll。直接浏览地址引用vb6的dll我没有成功,显示下面内容:

                                           

 于是开启了注册dll的道路。

这个是以管理员身份运行cmd,然后注册了VBarry.dll和VB6221107.dll。注册成功会弹窗显示成功。(如何管理员运行注册dll网上有)VBarry.dll和VB6221107.dll我把它们都拷贝到了C:\Windows\SysWOW64文件夹下,据说这个是运行32位dll的地方。其它地方注册后能不能用我没试验。下面是注册语句:

 一切完成后我准备引用dll。新建项目一个VB.NET和一个C#的。现在点击引用如下图。

 点击引用后会出现下面的界面,然后找到你注册的dll 点击打上小勾,点击确定

 

 现在我们成功引用了dll。

但是我们运行的时候会出问题,C#的内容。

using VBArry;//引用VB6的dll:VBArry
namespace WinFormsDll20221107
{
    public partial class Form1 : Form 
    {
    
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            double[] D = { 1, 2, 3, 5, 4, 3, 2, 1 };
            S4_Array1D A = new S4_Array1D();//S4_Array1D是VBArry中的一个类模块
            textBox1.Text += A.Array1DMax(D);
        }
    }
}

S4_Array1D A = new S4_Array1D();这句会报错,出现没有注册类0*80040154(REGDB_E_CLASSNOTREG)的错误提示!

 我查了很多网上的资料,没一个能够解决这个问题的,还是问了下编程群里的人,这个问题才解决了,编绎器改成X86的。下面就是改的过程

 

 

 最后运行结果正常显示为5.

 成功了,但是目标平台成了X86这样我做出来的程序是32位的?那以后还怎么弄,我需要制作64位的程序!!如果有人知道怎么弄成64位程序能够引用32位的VB6 dll一定要告诉我,太复杂就算了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值