Функция FreeLibrary


Функция FreeLibrary уменьшает итоговое число ссылок на загруженные динамически подключаемые библиотеки (DLL). Когда итоговое число ссылок достигает нуля, модуль отменяет отображение в адресном пространстве вызывающего процесса, а дескриптор становится больше не допустим.

Синтаксис

BOOL FreeLibrary(
  HMODULE hModule
);

Параметры

hModule

[in] Дескриптор загруженного DLL модуля. Функцией LoadLibrary или GetModuleHandle возвращается этот дескриптор.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение не нуль.

Если функция завершается ошибкой, возвращаемое значение равняется нулю. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.

Замечания

Каждый процесс обслуживает определенное число ссылок на каждый загруженный библиотечный модуль. Это итоговое число ссылок увеличивается каждый раз, когда вызывается LoadLibrary,  и уменьшается каждый раз, когда вызывается FreeLibrary. Модуль DLL, загружается при инициализации процесса благодаря выполняемом при загрузке динамическом связывании имеет итоговое число ссылок - единицу. Это итоговое число увеличивается, если один и тот же модуль загружается вызовом LoadLibrary.

Перед отменой отображения библиотечного модуля, система дает возможность DLL отделиться от процесса, при помощи вызова функции DllMain, если она одна, со значением DLL_PROCESS_DETACH. Такое выполнение дает DLL возможность очистить ресурсы, распределенные от имени текущего процесса. После того, как функция точки входа возвращает значение, библиотечный модуль удаляется из адресного пространства текущего процесса.

Не сохраняется вызов FreeLibrary из DllMain. Дополнительную информацию, см. в статье раздел Замечаний в DllMain.

Вызов FreeLibrary не  влияет  на другие процессы, которые используют один и тот же библиотечный модуль.

Код примера

Пример, см. в статье Использование динамического связывания периода выполнения.

Смотри также

Обзор Динамически подключаемые библиотеки (DLL), Функции, используемые DLL,   FreeLibraryAndExitThread, GetModuleHandle, LoadLibrary

Размещение и совместимость FreeLibrary

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT  Workstation

Да 

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да 
в    
е    
р    

Используемая библиотека

Kernel32.lib

Используемая DLL kernel32.dll
 Заголовочный файл  

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

Нет

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz