Site icon EfmSoft

Что означает код ошибки Windows 1285 (ERROR_DELAY_LOAD_FAILED)?

 
Предыдущий Следующий
ERROR_DEBUGGER_INACTIVE ERROR_VDM_DISALLOWED

ERROR_DELAY_LOAD_FAILED

Что означает ERROR_DELAY_LOAD_FAILED

ERROR_DELAY_LOAD_FAILED (decimal 1285, 0x00000505) — не удалось отложенно загрузить DLL или получить адрес функции из DLL с отложенной загрузкой.

Что проверить

Зафиксируйте DLL и импорт, который загрузчик пытался разрешить при delay-load.

  • Проверьте фактический путь загруженной DLL, её архитектуру и наличие требуемой функции/порядкового номера экспорта.
  • Если используется delay-load failure hook, сохраните исходную ошибку загрузчика до того, как обработчик преобразует её в общий код.

Практический смысл и диагностика

  • Не удалось delay-load требуемую DLL либо получить адрес функции из DLL, загружаемой по требованию.
  • Линкер Visual C++ поддерживает отложенную загрузку DLL, поэтому приложению не обязательно вручную реализовывать её через LoadLibrary и GetProcAddress.
  • При /DELAYLOAD helper-функция загружает DLL при первом фактическом обращении к импортированной функции и разрешает её адрес через LoadLibrary/GetProcAddress. Ошибка может возникнуть именно в этот момент, а не при старте процесса.
  • При delayed imports таблица импорта сначала содержит адреса специальных delay-load helper/thunk, которые заменяются реальными адресами импортов при первом вызове. Поэтому проверяйте наличие DLL, зависимостей, экспортируемого имени/ordinal и путь поиска именно в runtime-окружении.
  • Не путайте delayed imports с bound imports: bound-адреса вычисляются линкером для конкретной версии DLL. При диагностике delay-load важны фактическая загруженная DLL и результат разрешения нужного экспорта в момент первого обращения.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version