FreeLibrary
The FreeLibrary
function decrements the reference count of the loaded dynamic-link library
(DLL) module. When the reference count reaches zero, the module is unmapped
from the address space of the calling process and the handle is no longer
valid. This function supersedes the FreeModule1_CW3PP function.
BOOL FreeLibrary(
|
HMODULE hLibModule |
// handle to loaded
library module |
|
); |
|
Parameters
hLibModule
Identifies
the loaded library module. The LoadLibrary or GetModuleHandle function returns this
handle.
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError.
Remarks
Each process
maintains a reference count for each loaded library module. This reference
count is incremented each time LoadLibrary is called and is decremented each time FreeLibrary
is called. A DLL module loaded at process initialization due to load-time
dynamic linking has a reference count of one. This count is incremented if the
same module is loaded by a call to LoadLibrary.
Before
unmapping a library module, the system enables the DLL to detach from the
process by calling the DLL s DllEntryPoint function, if it has one, with the
DLL_PROCESS_DETACH value. Doing so gives the DLL 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.
Calling FreeLibrary
does not affect other processes using the same library module.
See Also