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


Функции LoadLibrary и AfxLoadLibrary

Процессы вызывают LoadLibrary (или AfxLoadLibrary) для явного связывания с библиотекой DLL.Если функция завершается успешно, то она сопоставляет указанное библиотеки DLL в адресное пространство вызова отростчатым и возвращает дескриптор библиотеки DLL, которая может использоваться с другими функциями в той связывание- для примера, GetProcAddress и FreeLibrary.

LoadLibrary пытается найти библиотеку DLL с помощью той же последовательности, которая используется для поиска неявного связывания.Если система не может найти библиотеку DLL или функция точки входа возвращает значение FALSE, функция LoadLibrary возвращает значение NULL.Если вызов LoadLibrary указывает модуль, библиотека DLL, который уже сопоставлен адресным пространством вызывающего процесса, функция возвращает дескриптор библиотеки DLL и увеличивает счетчик ссылок модуля.

Если у библиотеки DLL есть функция точки входа, операционная система вызывает эту функцию в контексте потока, в котором вызвана функция LoadLibrary.Функция точки входа не вызывается, если библиотека DLL уже вложено в процесс из-за предыдущего вызова метода LoadLibrary, не имеет соответствующего вызова функции FreeLibrary.

Для приложений MFC, загружающих библиотеки расширений DLL, рекомендуется использовать функцию AfxLoadLibrary вместо функции LoadLibrary.Функция AfxLoadLibrary обрабатывает синхронизацию потока до вызова функции LoadLibrary.Интерфейс (прототип) функции AfxLoadLibrary такой же, как у функции LoadLibrary.

Если системе Windows не удается загрузить библиотеку DLL, процесс может попытаться исправить последствия ошибки.Например, процесс может уведомить пользователя об ошибке и запросить у него другой путь к библиотеке DLL.

Примечание о безопасностиПримечание по безопасности

Если код для запуска в Windows NT4, Windows 2000 или Windows XP (в SP1), объявите полный путь всех библиотек DLL.В этих операционных системах при загрузке файлов в первую очередь поиск идет в текущем каталоге.Если не указать полный путь к файлу, который не является запланированного одного может быть загружен.

Выполняемые задачи

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

См. также

Ссылки

AfxLoadLibrary

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

Библиотека DLL в Visual C++

Другие ресурсы

LoadLibrary