Как мне узнать, какие dll будет загружать исполняемый файл? - PullRequest
69 голосов
/ 24 января 2009

Если у меня есть исполняемый файл Windows, как я могу узнать, какие библиотеки он будет загружать?

Я просто говорю о том, какие из них будут загружаться статически, а не те, которые могут загружаться динамически с чем-то вроде LoadLibrary.

Ответы [ 8 ]

48 голосов
/ 24 января 2009

dumpbin - это инструмент, который поставляется с VC ++.

Чтобы увидеть, какие библиотеки импортирует программа:

  • Открыть Visual Studio
  • Пункт меню Инструменты | Командная строка Visual Studio
  • cd в папку, содержащую исполняемый файл
  • мусорная корзина / зависимые от всех файлов.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
31 голосов
/ 24 января 2009

Есть утилиты, которые сделают это за вас.

В прошлом я использовал инструмент MS (зависимость.exe), который шел с (я думаю) VB. https://msdn.microsoft.com/en-us/library/8kche8ah.aspx

и это тоже:
http://dependencywalker.com/

и, возможно, другие.

13 голосов
/ 08 сентября 2014

Откройте командную строку и введите ниже команду

список задач / m / fi "imagename eq netbeans.exe"

Введите вместо netbeans.exe любое имя вашего exe-файла.

10 голосов
/ 12 марта 2012

Просто зайдите в командную строку и введите tasklist /m, вы увидите список файлов dll, используемых конкретной программой.

10 голосов
/ 24 января 2009

Dependency Walker может помочь вам определить, какой DLL-файл будет загружен.

3 голосов
/ 30 мая 2012

Решение для Microsoft .Net:

foreach (AssemblyName a in Assembly.ReflectionOnlyLoadFrom("SAMPLE.EXE").GetReferencedAssemblies()) 
{
    MessageBox.Show(a.Name); 
}
1 голос
/ 24 января 2009

Существует удобный инструмент под названием NDepend, который предоставит вам все зависимости DLL.

1 голос
/ 24 января 2009

progfr прост и полезен: [http://members.fortunecity.com/michaelmoser/tip11.htm]

...