Понятие вспомогательной функции

Вспомогательная функция для отложенной загрузки, поддерживаемой компоновщиком, фактически загружает библиотеки DLL во время выполнения. Вспомогательную функцию можно изменять, чтобы настроить ее поведение. Для этого вместо того, чтобы использовать вспомогательную функцию, предоставленную в файле Delayimp.lib, следует написать собственную функции и выполнить ее привязку к программе. Одна вспомогательная функция обслуживает все отложенные загрузки библиотек DLL.

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

Вспомогательная функция выполняет следующие действия:

  • Сопоставление хранимого дескриптора с библиотекой на предмет завершения загрузки библиотеки

  • Вызов метода LoadLibrary для загрузки библиотеки DLL

  • Вызов метода GetProcAddress для получения адреса процедуры

  • Возврат к преобразователю отложенной загрузки импортированных частей для вызова загружаемой в данный момент точки ввода

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

  • При запуске вспомогательной функции

  • Перед вызовом метода LoadLibrary вспомогательной функции

  • Перед вызовом метода GetProcAddress вспомогательной функции

  • При сбое вызова метода LoadLibrary вспомогательной функции

  • При сбое вызова GetProcAddress вспомогательной функции

  • После того как вспомогательная функция завершила обработку

Каждая из данных точек перехвата может возвращать значение, которое способно изменить стандартную обработку вспомогательной программой; за исключением возврата к преобразователю отложенной загрузки импортированных частей.

Вспомогательный код по умолчанию находится в файлах Delayhlp.cpp и Delayimp.h (в папке vc\include) и компилируется в Delayimp.lib (в папке vc\lib). Данную библиотеку необходимо включать в компиляции, если только не используется собственная вспомогательная функция.

Описание вспомогательной функции приведено в следующих подразделах:

См. также

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

Поддержка компоновщика для DLLs, загружаемых с задержкой