Как узнать, какие DLL файлы загружаются?
Если у меня есть исполняемый файл Windows, как я могу узнать, какие DLL файлы будут загружаться?
Я просто говорю о том, какие из них будут загружаться статически, а не те, которые могут загружаться динамически с помощью чего-то вроде LoadLibrary.
Ответы
Ответ 1
Есть утилиты, которые сделают это для вас.
В прошлом я использовал инструмент MS (depend.exe), который пришел (я думаю) VB.:
https://msdn.microsoft.com/en-us/library/8kche8ah.aspx
и там это также:
http://dependencywalker.com/
и, возможно, и другие.
Ответ 2
dumpbin - это инструмент, который поставляется с VС++.
Чтобы узнать, какие DLL файлы будут импортированы программой:
- Открыть Visual Studio
- Пункт меню Инструменты | Командная строка Visual Studio
- cd в папку, содержащую исполняемый файл
- dumpbin/dependents whatever.exe
Dump of file whatever.exe
File Type: EXECUTABLE IMAGE
Image has the following dependencies:
AIOUSB.DLL
sqlite3.dll
wxmsw293u_core_vc_custom.dll
wxbase293u_vc_custom.dll
KERNEL32.dll
ole32.dll
OLEAUT32.dll
MSVCP90.dll
MSVCR90.dll
Чтобы узнать, какие функции (и библиотеки DLL) будут импортированы, используйте
C:\> dumpbin /imports whatever.exe
Ответ 3
Откройте командную строку и введите команду ниже
tasklist/m/fi "imagename eq netbeans.exe"
Введите вместо netbeans.exe любое имя вашего имени файла exe.
Ответ 4
Dependency Walker может помочь вам определить, какая DLL будет загружена.
Ответ 5
Просто зайдите в командную строку и введите tasklist /m
, вы увидите список DLL файлов, используемых конкретной программой.
Ответ 6
Решение для Microsoft.Net:
foreach (AssemblyName a in Assembly.ReflectionOnlyLoadFrom("SAMPLE.EXE").GetReferencedAssemblies())
{
MessageBox.Show(a.Name);
}
Ответ 7
progfr прост и полезен:
[http://members.fortunecity.com/michaelmoser/tip11.htm]
Ответ 8
Существует удобный инструмент под названием NDepend, который даст вам все зависимости DLL.
Ответ 9
Это можно узнать с помощью устройства для обхода зависимостей, пожалуйста, используйте http://www.dependencywalker.com/