Если у меня есть исполняемый файл Windows, как я могу узнать, какие DLL файлы будут загружаться?
Я просто говорю о том, какие из них будут загружаться статически, а не те, которые могут загружаться динамически с помощью чего-то вроде LoadLibrary.
Если у меня есть исполняемый файл Windows, как я могу узнать, какие DLL файлы будут загружаться?
Я просто говорю о том, какие из них будут загружаться статически, а не те, которые могут загружаться динамически с помощью чего-то вроде LoadLibrary.
Есть утилиты, которые сделают это для вас.
В прошлом я использовал инструмент MS (depend.exe), который пришел (я думаю) VB.:
https://msdn.microsoft.com/en-us/library/8kche8ah.aspx
и там это также:
http://dependencywalker.com/
и, возможно, и другие.
dumpbin - это инструмент, который поставляется с VС++.
Чтобы узнать, какие DLL файлы будут импортированы программой:
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
Откройте командную строку и введите команду ниже
tasklist/m/fi "imagename eq netbeans.exe"
Введите вместо netbeans.exe любое имя вашего имени файла exe.
Dependency Walker может помочь вам определить, какая DLL будет загружена.
Просто зайдите в командную строку и введите tasklist /m
, вы увидите список DLL файлов, используемых конкретной программой.
Решение для Microsoft.Net:
foreach (AssemblyName a in Assembly.ReflectionOnlyLoadFrom("SAMPLE.EXE").GetReferencedAssemblies())
{
MessageBox.Show(a.Name);
}
progfr прост и полезен: [http://members.fortunecity.com/michaelmoser/tip11.htm]
Существует удобный инструмент под названием NDepend, который даст вам все зависимости DLL.
Это можно узнать с помощью устройства для обхода зависимостей, пожалуйста, используйте http://www.dependencywalker.com/