2012-02-23 58 views
1

我有我自己的custom.dll(C++,Windows)庫,它依賴於:zlib.dll,iconv.dll等。 custom.dll由custom.exe加載。查找DLL的依賴模塊

在C++/WinAPI中是否可以找到custom.dll在運行時依賴的模塊列表?

有一個函數EnumProcessModules用於處理。

是否有某些動態庫被進程加載? 作爲示例,依賴walker實用程序fileInfo插件正確顯示此信息。

+0

看看[程序化查找依賴關係(C#)] http://stackoverflow.com/questions/450039/how-to-programmatically-get-dll-dependencies。這個qn。適用於C#,但答案中有一些有用的鏈接。 – PermanentGuest 2012-02-23 10:02:02

+0

當然,使用EnumProcessModules()。在LoadLibrary()DLL之前和之後兩次。這種差別大概是你感興趣的。很難看到這樣做順便說一句。 – 2012-02-23 10:35:45

+0

@HansPassant:錯過了共享依賴關係。例如。 'Kernel32.DLL'不會顯示出來。 – MSalters 2012-02-23 11:00:20

回答

3

看看依賴沃克。它完全符合你的要求。 http://www.dependencywalker.com

+1

丹尼斯索洛沃夫要求運行時解決方案,但+1,這是非常酷的實用程序,我用了好幾年。 – rkosegi 2012-02-23 10:20:11

+0

謝謝,但我需要它在我的源代碼中執行。 – 2012-02-23 10:21:32

+0

您是否在尋找動態負載?例如:LoadLibrary?取決於那個......否則,我沒有徹底閱讀...... – JimR 2012-02-23 10:23:36