Dynamically Loading DLLs (LoadLibrary API)
Okay, I am successfully loading a DLL with:
Code:
LibraryHandle = LoadLibrary("C:\test.dll")
functionAddress = GetProcAddress(LibraryHandle, "ShowMessage")
But, I'm trying to figure out how to call the function/sub at fuctionAddress. I know you can use CallWindowProc, but apparently I'm not using it quite right...
I downloaded a project that uses CallWindowProc to call a sub in the same program:
Code:
Option Explicit
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub ShowMessage(msg As String, ByVal nUnused1 As Long, ByVal nUnused2 As Long, ByVal nUnused3 As Long)
MsgBox msg
End Sub
Private Function ProcPtr(ByVal nAddress As Long) As Long
ProcPtr = nAddress
End Function
Public Sub Haha()
Dim sMessage As String
Dim nSubAddress As Long
sMessage = InputBox("Please input a short message")
nSubAddress = ProcPtr(AddressOf ShowMessage)
CallWindowProc nSubAddress, VarPtr(sMessage), 0&, 0&, 0&
End Sub
However, I can't get it to call my DLL... Do I have to initialize my DLL first after loading it?