当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,