Функция LoadPackagedLibrary (winbase.h)

Загружает указанный упакованный модуль и его зависимости в адресное пространство вызывающего процесса.

Синтаксис

HMODULE LoadPackagedLibrary(
  [in] LPCWSTR lpwLibFileName,
       DWORD   Reserved
);

Параметры

[in] lpwLibFileName

Имя файла упаковаемого модуля для загрузки. Модуль может быть модулем библиотеки (файл .dll) или исполняемым модулем (файлом .exe).

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

Если этот параметр указывает путь, функция выполняет поиск модуля по этому пути. Путь не может быть абсолютным или относительным путем, содержащим ".." в пути. При указании пути обязательно используйте обратную косую черту (\), а не косую черту (/). Дополнительные сведения о путях см. в разделе Именование файлов, путей и пространств имен.

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

Если при загрузке указанного модуля система загружает другие связанные модули, функция сначала выполняет поиск загруженных модулей, а затем выполняет поиск графа зависимостей пакета процесса. Дополнительные сведения см. в подразделе "Примечания".

Reserved

Этот параметр зарезервирован. Оно должно быть 0.

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

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

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

Комментарии

Функция LoadPackagedLibrary — это упрощенная версия LoadLibraryEx. Упакованные приложения могут использовать LoadPackagedLibrary для загрузки упакованных модулей. Неупакованные приложения не могут использовать LoadPackagedLibrary; Если неупакованное приложение вызывает эту функцию, происходит сбой с APPMODEL_ERROR_NO_PACKAGE.

LoadPackagedLibrary возвращает дескриптор указанному модулю и увеличивает его число ссылок. Если модуль уже загружен, функция возвращает дескриптор загруженного модуля. Вызывающий процесс может использовать дескриптор, возвращенный LoadPackagedLibrary , для идентификации модуля в вызовах функции GetProcAddress . Используйте функцию FreeLibrary для освобождения загруженного модуля и уменьшения его количества ссылок.

Если функция должна искать указанный модуль или его зависимости, она выполняет поиск только по графу зависимостей пакета процесса. Это пакет приложения и все зависимости, указанные в <PackageDependency><Dependencies> разделе манифеста пакета приложения. Поиск зависимостей выполняется в том порядке, в который они отображаются в манифесте. Граф зависимостей пакета указывается в <Dependencies> разделе манифеста пакета приложения. Поиск зависимостей выполняется в том порядке, в который они отображаются в манифесте. Поиск выполняется следующим образом:

  1. Функция сначала выполняет поиск уже загруженных модулей. Если указанный модуль был изначально загружен из графа зависимостей пакета процесса, функция возвращает дескриптор загруженного модуля. Если указанный модуль не был загружен из графа зависимостей пакета процесса, функция возвращает значение NULL.
  2. Если модуль еще не загружен, функция выполняет поиск по графу зависимостей пакета процесса.
  3. Если функции не удается найти указанный модуль или одну из его зависимостей, функция завершается ошибкой.
Вызывать LoadPackagedLibrary из DllMain небезопасно. Дополнительные сведения см. в разделе Примечания статьи DllMain.

Примечание

На Windows Phone loadPackagedLibrary должен вызываться из PhoneAppModelHost.dll. Использование Kernel32.dll не поддерживается.

Требования

   
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Порядок поиска библиотеки динамической компоновки (DLL)