FreeLibrary

【勇芳软件工作室】汉化HomePreviousNext

FreeLibrary函数减少加载的动态链接库(DLL)模块的引用计数。当引用计数达到零时,模块将从调用进程的地址空间中取消映射,并且句柄不再有效。此函数取代FreeModule功能。

BOOL FreeLibrary(

HMODULE 【hLibModule】//处理加载库模块
); 

参数

【hLibModule】

标识加载的库模块。LoadLibraryGetModuleHandle函数返回此句柄。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

每个进程维护每个加载的库模块的引用计数。每次调用LoadLibrary时,该引用计数递增,并且每次调用FreeLibrary时都会递减。由于加载时间动态链接,在进程初始化时加载的DLL模块的引用计数为1。如果通过调用LoadLibrary加载相同的模块,则此计数递增。

在取消映射库模块之前,系统使DLL能够通过调用DLL的DllEntryPoint函数(如果具有一个)具有DLL_PROCESS_DETACH值来从进程中分离出来。这样做使DLL能够清理代表当前进程分配的资源。入门点函数返回后,库模块将从当前进程的地址空间中删除。

调用FreeLibrary不影响使用相同库模块的其他进程。

也可以看看

DllEntryPoint, FreeLibraryAndExitThread, FreeModule, GetModuleHandle, LoadLibrary