Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Библиотеки динамической компоновки

DLL-библиотека WIN32 состоит  из  одной специальной функции DLLEntryPoint  и  произвольного  набора  функций,  выполняющих  ту  работу,  для  которой  разрабатывалась данная  библиотека. В  заголовке  загрузочного  модуля  DLL-библиотеки должны быть описаны  экспортируемые  точки  входа,  соответствующие  всем  или  некоторым определенным  в ней  функциям. Приложения  могут  вызывать  только  те  функции  DLL-библиотеки, которые  экспортируются  ей.  Неэкспортируемые  библиотекой  функции  могут  использоваться  как  вспомогательные  только  внутри  библиотеки. Функция DLLEntryPoint вызывается каждый раз, когда выполняется инициализация процесса или потока, обращающихся к функциям библиотеки, при завершении этих процессов и потоков, а также при явной загрузке и выгрузке библиотеки функциями LoadLibrary и FreeLibrary. Эта функция создается программистом и служит обычно для выполнения некоторых предварительных операций необходимых для инициализации библиотеки (например, выделение блока памяти для его дальнейшего использования функциями библиотеки), а также выполнения операций, необходимых перед выгрузкой библиотеки (например, освобождение ранее выделенного блока). Функция DLLEntryPoint имеет следующий прототип:

BOOL WINAPI DllEntryPoint(

    HINSTANCE  hinstDLL,     // идентификатор модуля библиотеки DLL 

    DWORD  fdwReason,         // причина вызова функции

    LPVOID  lpvReserved         // резерв );

            Второй параметр, передаваемый этой функции может принимать следующие значения:

-          DLL_PROCESS_ATTACH – библиотека загружена в результате запуска процесса, требующего библиотеку, или в результате вызова функции LoadLibrary;

-          DLL_THREAD_ATTACH – процесс, использующий библиотеку создал новый поток;

предыдущаяследующая