You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET 4.8.1调用VB6 DLL中myFunc函数找不到入口点的解决问询

VB.NET调用VB6 DLL找不到入口点的解决方法

你遇到的问题根源是:VB6生成的是COM组件DLL,而非标准Win32 API DLL,不能用Declare语句直接调用。以下是正确的实现步骤:

1. 注册VB6 DLL(若未注册)

执行注册命令时注意路径含空格需加引号:

regsrv32 "C:\temp\Test DLL.dll"

2. 在VB.NET项目中添加COM引用

  • 右键你的VB.NET项目 → 选择「添加」→「引用」
  • 切换到「浏览」标签,找到并选中C:\temp\Test DLL.dll,点击「确定」完成引用添加

3. 修改VB.NET代码调用函数

删除原来的Declare声明,通过创建COM类实例调用myFunc:

Public Class Form1
    Private Sub bTest_Click(sender As Object, e As EventArgs) Handles bTest.Click
        ' 创建VB6类模块的实例
        Dim testInstance As New MyTest()
        ' 调用COM类中的函数
        Me.tOutput.Text = testInstance.myFunc(Me.tInput.Text)
    End Sub
End Class

关键说明

  • VB6的DLL将函数封装在COM类(你的类模块名称MyTest)中,并非以全局入口点形式暴露,因此Declare语句无法识别函数名。
  • regsrv32的作用是注册COM组件,让系统能识别并找到该组件,但注册后仍需通过COM实例访问内部成员,而非直接调用函数入口。

内容的提问来源于stack exchange,提问作者LPChip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:42:04