-
FreeLibrary
鎖定
FreeLibrary,計算機語言。意思是釋放指定的動態鏈接庫。
- 外文名
- FreeLibrary
- 説 明
- 釋放指定的動態鏈接庫
- 返回值
- Long
FreeLibraryVB
FreeLibraryVB聲明
Declare Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As Long) As Long
FreeLibrary説明
釋放指定的動態鏈接庫,它們早先是用LoadLibrary API函數裝載的
FreeLibrary返回值
Long,非零表示成功,零表示失敗。會設置GetLastError
FreeLibrary參數表
FreeLibrary參數 類型及説明
hLibModule Long,要釋放的一個庫句柄
FreeLibrary在VB裏使用
只能用這個函數釋放那些由應用程序明確裝載的DLL。對LoadLibrary的每一次調用都應該有一個對應的FreeLibrary調用
FreeLibrarydelphi聲明
function FreeLibrary; external kernel32 name 'FreeLibrary';
FreeLibraryC++
Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count. When the reference count reaches zero, the module is unloaded from the address space of the calling process and the handle is no longer valid.
FreeLibrarySyntax
BOOL WINAPI FreeLibrary( _In_ HMODULE hModule);
FreeLibraryParameters
hModule [in]A handle to the loaded library module. The LoadLibrary, LoadLibraryEx, GetModuleHandle, or GetModuleHandleEx function returns this handle.
FreeLibraryReturn value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call the GetLastError function.
FreeLibraryRemarks
The system maintains a per-process reference count for each loaded module. A module that was loaded at process initialization due to load-time dynamic linking has a reference count of one. The reference count for a module is incremented each time the module is loaded by a call to LoadLibrary. The reference count is also incremented by a call to LoadLibraryEx unless the module is being loaded for the first time and is being loaded as a data or image file.
The reference count is decremented each time the FreeLibrary or FreeLibraryAndExitThread function is called for the module. When a module's reference count reaches zero or the process terminates, the system unloads the module from the address space of the process. Before unloading a library module, the system enables the module to detach from the process by calling the module's DllMain function, if it has one, with the DLL_PROCESS_DETACH value. Doing so gives the library module an opportunity to clean up resources allocated on behalf of the current process. After the entry-point function returns, the library module is removed from the address space of the current process.
It is not safe to call FreeLibrary from DllMain. For more information, see the Remarks section in DllMain.
Calling FreeLibrary does not affect other processes that are using the same module.
Use caution when calling FreeLibrary with a handle returned by GetModuleHandle. The GetModuleHandle function does not increment a module's reference count, so passing this handle to FreeLibrary can cause a module to be unloaded prematurely.
A thread that must unload the DLL in which it is executing and then terminate itself should call FreeLibraryAndExitThread instead of calling FreeLibrary and ExitThread separately. Otherwise, a race condition can occur. For details, see the Remarks section of FreeLibraryAndExitThread.
Windows Phone 8: This API is supported.
FreeLibraryExamples
For an example, see Using Run-Time Dynamic Linking.
FreeLibraryRequirements
Minimum supported client | Windows XP [desktop apps | Windows Store apps] |
---|---|
Minimum supported server | Windows Server 2003 [desktop apps | Windows Store apps] |
Header | Winbase.h (include Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
FreeLibrarySee also
DllMainDynamic-Link Library FunctionsFreeLibraryAndExitThreadGetModuleHandleGetModuleHandleExLoadLibraryRun-Time Dynamic Linking
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:11次歷史版本
- 最近更新: 满地瓜儿