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


/DELAY (параметры отложенной загрузки импортов)

/DELAY:UNLOAD
/DELAY:NOBIND

Заметки

Параметр /DELAY управляет отложенной загрузкой библиотек DLL.

  • Квалификатор UNLOAD предписывает вспомогательной функции отложенной загрузки поддерживать явную выгрузку DLL. Таблица адресов импорта (IAT) восстанавливается в своем первоначальном виде; это приводит к тому, что указатели IAT становятся недействительными и перезаписываются.

    Если квалификатор UNLOAD не указан, то любой вызов FUnloadDelayLoadedDLL завершится с ошибкой.

  • Квалификатор NOBIND предписывает компоновщику не включать связываемую таблицу IAT в окончательный образ. По умолчанию задано создание связываемой таблицы IAT для библиотек DLL, загружаемых с задержкой. Полученный в результате образ не может быть статически привязан. (Образы с привязываемыми таблицами IAT могут быть статически привязаны перед выполнением.) См. статью, посвященную параметру /BIND.

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

    Применение квалификатора NOBIND приведет к увеличению образа программы, но зато может уменьшить время загрузки библиотеки DLL. Если привязка библиотеки DLL не предполагалась, то NOBIND предотвратит создание привязанной таблицы IAT.

Чтобы задать отложенную загрузку для библиотек DLL, используется параметр /DELAYLOAD.

Задание данного параметра компоновщика в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Сведения см. в разделе Работа со свойствами проектов.)

  2. Разверните узлы Свойства конфигурации, Компоновщик и выберите элемент Дополнительно.

  3. Измените свойство Отложенно загружаемые DLL.

Задание данного параметра компоновщика программным способом

См. также

Ссылки

Настройка параметров компоновщика

Параметры компоновщика