关于vb.net中dll的调用问题
我在做一个关于条码的程序,需要调用厂商提供的dll。他们提供了一个vb的例子。如下(只举下面的例子):
Private Declare Function B_CreatePrn Lib "WINPPLB.DLL" (ByVal selection As Long, ByVal filename As String) As Long
rivate Sub Command1_Click()
''''''WinPPLB.DLL Version 2.7BW'''''''''''
Print B_CreatePrn(1, "a22")
厂商提供的'WinPPLB.DLL我注册不成功,只有把它放在厂商提供给我的vb例子程序的目录下才可以运行。不知道为什么?
我现在用vb.net些,可就是不能正确调用。因为我是新手,所以希望大家帮助!
我在工程中 新建了一个模块:写了
Module Module1
Declare Function B_CreatePrn Lib "WINPPLB.dll" (ByVal selection As Long, ByVal filename As String) As Long
End Module
然后在 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Long
a = B_CreatePrn(1, "a22")
End Sub
但调用就出错。我也不知道我这样写正不正确?
我这样写它的错误提示如下:对 PInvoke 函数“WindowsApplication4!WindowsApplication4.Module1::B_CreatePrn”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
请众位打侠帮忙!!万分感谢!