如何找出可执行文件将加载哪些dll?

Dav*_*man 72 dll executable

如果我有一个Windows可执行文件,我如何找出它将加载哪些dll?

我只是在讨论哪些是静态加载的,而不是像LoadLibrary那样动态加载的那些.

Gra*_*row 50

dumpbin是VC++附带的工具.

要查看程序将导入哪些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
Run Code Online (Sandbox Code Playgroud)

要查看它将导入的函数(和DLL),请使用

C:\> dumpbin /imports whatever.exe
Run Code Online (Sandbox Code Playgroud)

  • 我相信它应该是:dumpbin/dependents whatever.exe (3认同)
  • / depends仅向您显示DLL。/ imports向您显示功能*和* DLL。 (2认同)

gkr*_*ers 32

有些实用程序会为您执行此操作.

在过去,我使用过(我认为)VB的MS工具(depends.exe):https:
//msdn.microsoft.com/en-us/library/8kche8ah.aspx

还有这个:http:
//dependencywalker.com/

也许还有其他人.

  • 与Visual Studio/VB/...一起安装的"depends.exe"和可以从http://dependencywalker.com/下载的"depends.exe"是完全相同的工具(只有不同​​的版本).;) (6认同)
  • 链接已失效。 (2认同)

LOK*_*ESH 13

打开命令提示符,然后键入以下命令

tasklist/m/fi"imagename eq netbeans.exe"

输入netbeans.exe而不是你的exe文件名.


Dav*_*nds 10

Dependency Walker可以帮助您确定将加载哪个.dll.


Sub*_*kya 10

只需转到命令提示符并键入tasklist /m,您将看到特定程序使用的DLL文件列表.