大佬教程收集整理的这篇文章主要介绍了windows – 在Visual Basic 6中访问动态加载的DLL(使用LoadLibrary),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Private Sub cmdTestLoadingDLL_Click() Dim lb As Long,pa As Long lb = LoadLibrary("D:\projects\other\VB_DLLs\TestDLL\TestDLL.dll") MsgBox "Library address: " + lb FreeLibrary lb End Sub
我可以看到使用Process Explorer在显示消息框时将DLL加载到内存中,然后丢弃.但是,调用该方法自然是不够的 – 我需要访问动态加载的DLL中的方法.
我怎样才能做到这一点?我想在类mainClass中调用方法getVersion,它在TestDLL中,如下所示:
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Private Sub cmdTestLoadingDLL_Click() Dim lb As Long,pa As Long Dim versionString As String lb = LoadLibrary("D:\projects\other\VB_DLLs\TestDLL\TestDLL.dll") versionString = "- From DLL: " + mainClass.getVersion MsgBox versionString FreeLibrary lb End Sub
但是,行
versionString = "- From DLL: " + mainClass.getVersion
抛出错误“需要对象”.
我会尝试以下方法:
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long,ByVal lpProcName As String) As Long Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long,ByVal hWnd As Long,ByVal Msg As Any,ByVal wParam As Any,ByVal lParam As Any) As Long Private Sub Foo On Error Resume Next Dim lb As Long,pa As Long Dim versionString As String Dim retValue as Long lb = LoadLibrary("D:\projects\other\VB_DLLs\TestDLL\TestDLL.dll") 'retrieve the address of getVersion' pa = GetProcAddress(lb,"getVersion") 'Call the getVersion function' retValue = CallWindowProc (pa,Me.hWnd,"I want my version",ByVal 0&,ByVal 0&) 'release the library' FreeLibrary lb End Sub
以上是大佬教程为你收集整理的windows – 在Visual Basic 6中访问动态加载的DLL(使用LoadLibrary)全部内容,希望文章能够帮你解决windows – 在Visual Basic 6中访问动态加载的DLL(使用LoadLibrary)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。