vb.net调用DLL问题,
有个设备的DLL文件,看到里面有接口函数,用.net Reflector反汇编了调用到他另外一个程序看到的函数定义如下:<DllImport("EyeOne.dll")> _
Public Shared Function I1_GetOption(ByVal String1 As String) As String
End Function
但我调用这个函数的时候 msgbox I1_GetOption("SerialNumber") ,提示我:
对 PInvoke 函数“EyeOneTest!EyeOneTest.OwnEyeOne::I1_GetOption”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
如果添加CallingConvention=CallingConvention.Cdecl这一句来定义,程序运行到调用这个函数就自动退出了.
这个DLL当中还有一些其他函数不需要参数的直接调用就没问题. 要怎么办呢?
--------------------编程问答-------------------- 按提示,函数声明的不正确。 --------------------编程问答-------------------- 在IDE环境 里运行就不行,生成了EXE文件执行就可以,这怎么搞呢?
补充:.NET技术 , VB.NET