Dependency Walker

1241519135|%Y-%m-%d|agohover

相信所有用 Linux/FreeBSD 的 programmer 們,都知道一個叫 ldd 的指令可以列出某個執行檔或動態函式庫(.so)所依賴的其它函式庫,遇到相依性的問題時,可以很方便地找出系統上缺少的函式庫為何。而在 Windows 上,我們可以用 Dependency Walker 來解決相同的問題。

depends.png

Dependency Walker 的用法非常簡單:把執行檔或 DLL 當參數餵給 depends.exe,詳細的資料馬上就出現在你眼前:

depends C:\WINDOWS\notepad.exe

不過你也知道,Windows 上大家都習慣開個檔案總管、滑鼠點來點去的操作方式,在檔案總管中想看到某個執行檔所使用的 DLL,若還要開命令列去打指令實在超麻煩,尤其 Windows 的命令列又那麼難用。以下的登錄檔可以幫你把 Dependency Walker 加入右鍵選單中:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\dllfile\shell]

[HKEY_CLASSES_ROOT\dllfile\shell\depends]
@="Dependency Walker"

[HKEY_CLASSES_ROOT\dllfile\shell\depends\command]
@="\"C:\\bin\\depends.exe\" \"%1\""

[HKEY_CLASSES_ROOT\dllfile\shell]

[HKEY_CLASSES_ROOT\exefile\shell\depends]
@="Dependency Walker"

[HKEY_CLASSES_ROOT\exefile\shell\depends\command]
@="\"C:\\bin\\depends.exe\" \"%1\""

當然,合併登錄檔前請先把 C:\\bin\\depends.exe 改成你放 Dependency Walker 的路徑,這麼一來在檔案總管中就可以隨時對執行檔及 DLL 執行 Dependency Walker 了。

depends-menu.png

真是懶中之懶,懶惰即美德的良好示範


Comments

Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License