如何用VB.NET调用自己写的DLL库

时间:2022-09-29 10:18:03
我用的是VB 2005
请写一个简单的例子,有哪些需要设置的地方

DLL库是我自己写的在VB6.0下调用成功了,要移植到VB.NET下该怎么办?

看到网上说要将DLL添加引用。
右键点项目-->添加引用-->找到我的DLL点确定时,提示说:确保此文件可访问或是一个有效的程序集或COM组件。

怎么回事?

该怎么做?谢谢

5 个解决方案

#1


不是在这儿引用啦,右击工具箱,选择“选择项...”,单击“浏览”定位到你的.dll

#2


按1楼的方法做

错误:
在.NET Framework组件  选项卡中浏览
错误:......不是一个Microsoft.net模块
在COM组件  选项卡中浏览
错误:......未能加载类型库...... XX.tlb

#3


在VB6.0中做的.dll拿到.NET中使用肯定会有问题的,具体怎么自定义控件,也在学习中。能力有限,只能回答在哪儿引用的问题。

关注!

#4


我是在VC6.0中写的DLL

现在程序可以运行了,当调用DLL库中的函数时出现:
无法加载 DLL“ZLDS10X.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

#5


我自己解决了!

把解决的步骤告诉大家,方便以后的人能快点解决问题
VB.NET中的代码:

Imports system
Module Module1
'申明DLL中的函数
    Public Declare Function ZLDS10X_Open Lib "ZLDS10X.dll" (ByVal Comx As String, ByVal baudrate As Integer, ByVal timeout As Integer, ByVal netaddress As Integer) As Integer
End Module

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ahandle As Integer
'调用DLL中的函数
        ahandle = ZLDS10X_Open("com7", 115200, 1000, 1)
    End Sub
End Class

由于我刚刚涉及.NET,可能代码中有多余的东西。


不需要设置其他的东西。可以运行

运行过程中当执行到调用DLL中的函数ZLDS10X_Open时出现错误:
无法加载 DLL“ZLDS10X.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

要将DLL库文件复制到项目的 Bin\Debug目录下,(如果你编译的是Relese,则要复制到Bin\Relese目录)
在运行出现错误:
…………PInvoke 签名与非托管的目标签名不匹配…………

调整函数中的变量类型,类型要与DLL库中的一致。

OK!完成啦


PS:同时谢谢回复我的几位弟兄。

#1


不是在这儿引用啦,右击工具箱,选择“选择项...”,单击“浏览”定位到你的.dll

#2


按1楼的方法做

错误:
在.NET Framework组件  选项卡中浏览
错误:......不是一个Microsoft.net模块
在COM组件  选项卡中浏览
错误:......未能加载类型库...... XX.tlb

#3


在VB6.0中做的.dll拿到.NET中使用肯定会有问题的,具体怎么自定义控件,也在学习中。能力有限,只能回答在哪儿引用的问题。

关注!

#4


我是在VC6.0中写的DLL

现在程序可以运行了,当调用DLL库中的函数时出现:
无法加载 DLL“ZLDS10X.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

#5


我自己解决了!

把解决的步骤告诉大家,方便以后的人能快点解决问题
VB.NET中的代码:

Imports system
Module Module1
'申明DLL中的函数
    Public Declare Function ZLDS10X_Open Lib "ZLDS10X.dll" (ByVal Comx As String, ByVal baudrate As Integer, ByVal timeout As Integer, ByVal netaddress As Integer) As Integer
End Module

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ahandle As Integer
'调用DLL中的函数
        ahandle = ZLDS10X_Open("com7", 115200, 1000, 1)
    End Sub
End Class

由于我刚刚涉及.NET,可能代码中有多余的东西。


不需要设置其他的东西。可以运行

运行过程中当执行到调用DLL中的函数ZLDS10X_Open时出现错误:
无法加载 DLL“ZLDS10X.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

要将DLL库文件复制到项目的 Bin\Debug目录下,(如果你编译的是Relese,则要复制到Bin\Relese目录)
在运行出现错误:
…………PInvoke 签名与非托管的目标签名不匹配…………

调整函数中的变量类型,类型要与DLL库中的一致。

OK!完成啦


PS:同时谢谢回复我的几位弟兄。