我想调用一个 F:\88.dll,这个dll不用注册,无法添加到引用,想用vb.net调用,不知如何是好?(不知道插件接口,也不知道静态调用还是动态调用,这两个方法也不知道代码是怎么写。)本人小菜,请大师们贴出解决源码,
本人拙码如下:
Declare Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As Integer) As Integer
Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As Integer, ByVal lpProcName As String) As Integer
Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
‘Declare Function jz Lib "F:\88.dll" (ByVal SetDllPathA As Integer, ByVal SetDllPathW As Integer) As Long ///////////这行也试过,无效!所以注销了。
Dim jz = LoadLibrary("F:\88.dll") //////////////这行不知道怎么写,应该没这么简单!太菜鸟了,抱歉!
jz.DmmRge("C:\LC.dll") ////////////////////这行是直接调用这个插件命令。(用这个插件命令去注册别的插件)。这行出现调试错误。
调试错误信息如下:
对 PInvoke 函数“svchost!svchost.Form1::SetDllPathW”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
如何成功调用这个dll,请大师们教育,谢谢!
------解决思路----------------------
Depends用这个工具分析下你的88.dll看看环境是否缺少其他DLL支持,查看看你的调用函数名是否一直...