http://www.vbgood.com/viewthread.php?tid=73711&extra=page%3D1

解决方案 »

  1.   

    下面是调用GetCurrentProcessId的例子:Option ExplicitPrivate 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 FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
    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 LongPrivate Sub command1_click()
        Dim DllHand             As Long
        Dim DllProc             As Long
        Dim re As Long    '加载DLL文件
        DllHand = LoadLibrary("kernel32.dll")
        If DllHand = 0 Then MsgBox "没法加载DLL"
        
        '找到DLL指定函数的入口地址
        DllProc = GetProcAddress(DllHand, "GetCurrentProcessId")
        If DllProc = 0 Then MsgBox "没找到此函数"
        
        re = CallWindowProc(DllProc, DllHand, 0, 0, 0)
        MsgBox re
        '执行完一定要释放,无论如何要释放,否则可能造成系统崩溃.
        FreeLibrary DllHand
    End Sub
      

  2.   

    我在想一个问题
    如果我要动态获得CreateWindowEx函数的地址
    获得地址后,如何给它传递参数呢.......