Поделиться через


Инициализация библиотеки DLL

Обычно библиотека DLL имеет код инициализации (например, выделение памяти), который должен выполняться при загрузке библиотеки DLL. При использовании Visual C++ место добавления кода для инициализации библиотеки DLL зависит от типа библиотеки DLL, построение которой выполняется. При отсутствии необходимости добавления кода инициализации или завершения при построении библиотеки DLL не требуется никаких дополнительных действий. Чтобы определить место добавления кода при инициализации библиотеки DLL, см. нижеследующую таблицу.

Тип библиотеки DLL

Место добавления кода инициализации и завершения

Обычная библиотека DLL

В код InitInstance и ExitInstance объекта CWinApp библиотеки DLL.

Библиотека DLL расширения

В функцию DllMain, созданную с помощью мастера MFC DLL.

Библиотека DLL (не MFC)

В предоставляемую пользователем функцию с именем DllMain.

В Win32 все библиотеки DLL могут содержать дополнительную функцию точки входа (называемую обычно DllMain), которая вызывается для инициализации и завершения. Это позволяет при необходимости выделить или освободить дополнительные ресурсы. Функция точки входа вызывается Windows в четырех случаях: присоединение процесса, отсоединение процесса, присоединение потока и отсоединение потока.

Библиотека времени выполнения языка C предоставляет функцию точки входа с именем _DllMainCRTStartup и вызывает функцию DllMain. В зависимости от типа библиотеки DLL пользователю необходимо иметь функцию с именем DllMain в исходном коде или использовать функцию DllMain, предоставленную в библиотеке MFC.

Выберите действие.

Дополнительные сведения

См. также

Основные понятия

DLL в Visual C++