LoadLibrary
計算機語法
LoadLibrary是計算機語法
Syntax(C++)
HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName);
VB6:
Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
VB.NET
Declare Unicode Function LoadLibrary Lib "kernel32" Alias "LoadLibraryW" (lpLibFileName As String) As IntPtr
載入指定的動態鏈接庫,並將它映射到當前進程使用的地址空間。一旦載入,即可訪問庫內保存的資源
Long,成功則返回庫模塊的句柄,零表示失敗。會設置GetLastError
參數 類型及說明
lpLibFileName String,指定要載入的動態鏈接庫的名稱。採用與CreateProcess函數的lpCommandLine參數指定的同樣的搜索順序
註解
一旦不需要,用FreeLibrary函數釋放DLL
Create a new project and add this code to Form1
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 Form_Load()
On Error Resume Next
'KPD-Team 1999
'We're going to call an API-function, without declaring it!
Dim lb As Long, pa As Long
'map 'user32' into the address space of the calling process.
Lb = LoadLibrary("user32")
'retrieve the address of 'SetWindowTextA'
pa = GetProcAddress(lb, "SetWindowTextA")
'Call the SetWindowTextA-function
CallWindowProc pa, Me.hWnd, "Hello !", ByVal 0&, ByVal 0&
'unmap the library's address
FreeLibrary lb
End Sub