2012-04-23 2 views
4

У меня возникли проблемы с загрузкой этой DLL, поэтому я открыл ее в Dependency Walker.32-разрядная DLL-загрузка 64-разрядных зависимостей?

Несмотря на 32-разрядную DLL-библиотеку, она пытается загрузить 64-разрядные библиотеки DLL в качестве зависимостей, в результате чего она запускает исключения «Невозможно загрузить DLL» во время выполнения. Есть ли способ указать, какие зависимости я бы хотел использовать?

(Я бы разместил скриншот Dependency Walker, но я не могу, потому что я новый пользователь).

Обновление:

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

Окончательное обновление:

Кажется, что это некорректная установка. В какой-то момент драйверы были обновлены, и они больше не устанавливают 32-разрядные библиотеки DLL на основе 64-разрядных систем.

+0

У вас есть 32-битные версии? – ChrisBint

+0

@ChrisBint Хотя большинство из них есть, похоже, что некоторые из 32-разрядных версий отсутствуют. Кажется, что установщик был изменен с тех пор, как я загрузил его последним. – static416

ответ

1

В Windows есть very specific search order to locate DLLs, который вы можете использовать, чтобы найти правильные данные перед неправильными.

+0

Это имеет смысл. Интересно, не использует ли DLL третьей стороны я использую GetSystemDirectory правильно. – static416

+0

@ static416 Я не думаю, что DLL действительно участвует в поиске собственных зависимостей (обычно это не так). Где находятся найденные 64-битные библиотеки и где находятся 32-разрядные библиотеки DLL? –

+0

После того, как выкарабкались немного дальше, ясно, что происходит нечто более значимое. Некоторые из 32-разрядных версий зависимостей не существуют. Таким образом, либо на предыдущей установке также отсутствовали 32 зависимостей, но как-то функционировали. Или установщики драйверов изменились со времени предыдущей установки, и они больше не устанавливают 32-разрядные библиотеки DLL на 64-битные системы. Спасибо за вашу помощь, мне придется копать немного глубже на моей стороне, я думаю. – static416

Смежные вопросы