Загруженная с задержкой dll, скомпилированная на Win7, не может быть загружена в XP

#c #visual-c #delay-load

#c #visual-c #задержка загрузки

Вопрос:

Я использую VC 2010. A.dll зависит от B.dll , и установить B.dll как задержка-загрузка в настройках проекта A. Создайте их на Win7 x64-разрядной ОС. Можно загрузить B.dll в ОС win7 он не загружается B.dll на ОС XP x64. Если удалить параметр задержки загрузки, B.dll также может быть загружен в ОС XP. Если библиотеки DLL созданы на XP, их можно загрузить на XP.

Почему DLL с задержкой загрузки, созданная на Win7, не может быть загружена в XP? Как я могу заставить это работать?

Комментарии:

1. Что именно вы имеете в виду под «построенным на Win7». Вероятно, для этого вы используете 2 разные установки Visual studio. Вы проверили все номера версий / исправлений установки, а также все ссылки на сторонние библиотеки? Пожалуйста, напишите, какие версии вы используете на каком компьютере.

2. Я не знаю причины, но я бы использовал ProcMon для мониторинга обращений к B.dll во всех случаях и посмотрите, в чем заключаются различия. Непосредственными подозреваемыми являются текущие изменения каталога (которые влияют на путь поиска DLL с задержкой загрузки) и несоответствия разрядности.

3. если сборка без задержки загрузки, этой проблемы нет. Здесь эта проблема возникает только при сборке этой проблемы с задержкой загрузки. И я помещаю эти две библиотеки dll в одну папку.