如果我有Windows可执行文件,如何确定它将加载哪些dll?
我只是在谈论哪些将静态加载,而不是那些可能通过LoadLibrary之类的动态加载方式。
Answers:
有实用程序将为您执行此操作。
过去,我使用过(我认为)VB附带的MS工具(depends.exe):https :
//msdn.microsoft.com/zh-cn/library/8kche8ah.aspx
还有这个:http :
//dependencywalker.com/
可能还有其他人。
dumpbin是VC ++附带的工具。
要查看程序将导入哪些DLL:
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
.exe
可执行文件间接依赖的DLL加载的DLL。
打开命令提示符,然后在命令下方键入
任务列表/ m / fi“映像名称eq netbeans.exe”
改用您的exe文件名键入netbeans.exe。
只需转到命令提示符并键入tasklist /m
,您将看到特定程序使用的dll文件列表。
有一个方便的工具叫做NDepend,它将为您提供所有DLL依赖项。
NDepend
是.NET托管代码的静态分析工具”。因此,它仅适用于.Net应用程序。
Process Explorer随SysInternals Suite一起提供 https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite
好处:允许浏览已经运行的流程(我还没有发现将依赖项行程序附加到现有流程中)