2010-01-03 171 views

回答

44

這是Dependency Walker。

http://dependencywalker.com/

+3

做任何像ldd存在的命令行一樣嗎?尋找我可以使用的提示。喜歡一個小型的燈光命令,最好不要額外的DLL。 – TechZilla 2011-10-17 14:49:22

+2

它似乎有一個命令行界面:http://www.dependencywalker.com/help/html/hidr_command_line_help.htm – 2011-10-17 14:54:43

+3

語法如下所示: depends.exe/c /oc:dependencies.csv/ot: dependencies.txt mydll.dll – Boinst 2013-05-21 05:13:18

19

dumpbin命令可能是許多有用的東西,但在這種情況下,Dependency Walker中可能是一個小更詳細。

dumpbin /dependents some.dll 
+1

如果您安裝了Visual Studio,這是最好的選擇。 – sakra 2015-12-09 14:50:10

24

或GNU工具:

i586-mingw32msvc-objdump -p *.exe | grep 'DLL Name:' 
+0

可以使用objdump來顯示完整路徑嗎?我需要遞歸的東西,這需要每個依賴DLL的完整路徑。 – INS 2013-01-24 08:26:01

+2

objdump只顯示文件包含的內容。它不會嘗試像'ldd'那樣進行任何路徑查找。 – 2014-07-17 12:35:13

6

現在有Cygwin中的ldd。如果你有一個非常古老的Cygwin版本,你將不得不使用cygcheck

+0

是的,但它不是很準確 – Stef 2015-10-03 16:47:14

8

如果您使用wine而不是真正的Windows,則可以使用WINEDEBUG=+loaddll wine <program>

+5

針對Windows開發針對Windows讓我覺得這是一個奇怪的想法,我不得不嘗試一下(我主要針對Linux)......實際上,它的工作遠比*平滑得多我期望進行原型設計。非常非常酷。 – zxq9 2015-06-27 07:49:16

+0

回覆:使用Wine代替Windows開發:請注意,Wine在Wine中的作用不一定適用於真正的Windows。當我忘記調用'GdiplusStartup'時,我學到了這一點,而GDI +在Wine中沒有問題,而在Windows中沒有問題。在Wine中調試程序後,我只注意到這個錯誤,然後嘗試在Windows中運行它。 – Ruslan 2017-06-03 19:29:43

19

PowerShell中能做到這一點

 
PS > Start-Process -PassThru calc.exe | Get-Process -Module 

    Size(K) ModuleName 
    ------- ---------- 
     908 calc.exe 
     1700 ntdll.dll 
     1148 kernel32.dll 
     432 KERNELBASE.dll 
    13856 SHELL32.dll 
      ... 
+3

這似乎只在程序實際上發現dll的情況下才起作用 - 如果失敗,列表不完整。 – 01d55 2016-07-04 01:17:09

6

我猜的Windows開發者的方式來做到這一點是使用dumpbin /dependents source.exe。如果你安裝了Visual Studio,你可以在這裏找到它:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe

+0

太糟糕了,這並沒有顯示依賴者被發現的位置,所以你可以精確地看到哪些實際在運行時使用:(。 – rubenvb 2017-07-30 12:12:08

3

更新版本的Git在Windows上打包了一些名爲的Git BASH,它模擬許多有用的Unix命令,包括ldd。

它似乎只報告可以找到的庫。因此,您可以使用它來概述所用庫的位置,但不會丟失哪些庫。