Зависимость Уокер: недостающие библиотеки
Я пытался разрешить зависимости.dll для исполняемого файла с помощью Dependency Walker. В настоящее время я получаю.dll в следующей форме:
API-MS-WIN -XXX
EXT-MS-WIN -XXX
Например:
API-MS-WIN-APPMODEL-IDENTITY-L1-2-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-INTERNAL-L1-1-0.DLL
API-MS-WIN-BASE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYSCOLORS-L1-1-0.DLL
У кого-нибудь есть идеи о том, как их решить? Любая помощь будет оценена!
Дополнительная информация: я скомпилировал исполняемый файл с использованием Visual Studio 2013. Самое интересное, что я не получил никаких ошибок во время компиляции. Однако я не могу запустить его из-за отсутствия зависимостей. Я также приложил скриншот ходунка зависимости:
Обновление 1: пытаясь решить эту проблему, я попытался добавить путь к библиотекам, которые VS использовал во время компиляции, в переменную среды $PATH без какой-либо удачи (Dependency Walker по- прежнему показывает неразрешенные зависимости).
3 ответа
Это наборы API- по сути, дополнительный уровень косвенной обработки вызовов вводится постепенно, начиная с Windows 7. Разработка обходчика зависимостей, казалось бы, остановилась задолго до этого, и она не может правильно обрабатывать наборы API.
Так что это все ложные негативы и не о чем беспокоиться. Вы ничего не пропускаете.
Также см. Об API-MS-WIN-XXXXX.DLL и Другие глюки обхода зависимостей.
Изменить: только в октябре 2017 года кто-то наконец попытался заполнить этот пробел. Встречайте зависимости от lucasg. До сих пор я только кратко возился с этим, но он хорошо справляется с наборами API и, по крайней мере, очень достоин внимания.
В дополнение к тому, что сказал @Ofek Shilon, я обычно игнорирую следующие dll, которые Зависимость_walker определил как отсутствующие, когда я пытаюсь найти отсутствующие dll для своей программы. Вы увидите, что ваша программа работает нормально, когда dependency_walker сообщает, что эти библиотеки отсутствуют.
- API-MS-WIN - * длл.
- EXT-MS-WIN-* длл.
- ieshims.dll
- EMCLIENT.dll
- DEVICELOCKHELPERS.dll
Вы можете найти dll, отличные от приведенных выше, чтобы решить вашу проблему.
Программа Dependencies помогла мне быстро найти недостающую DLL. Он имеет открытый исходный код и доступен здесь: https://github.com/lucasg/Dependencies