如果我有一个Windows可执行文件,我如何找出它将加载哪些dll?
我只是在讨论哪些是静态加载的,而不是像LoadLibrary那样动态加载的那些.
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
要查看它将导入的函数(和DLL),请使用
C:\> dumpbin /imports whatever.exe
有些实用程序会为您执行此操作.
在过去,我使用过(我认为)VB的MS工具(depends.exe):https:
//msdn.microsoft.com/en-us/library/8kche8ah.aspx
还有这个:http:
//dependencywalker.com/
也许还有其他人.
打开命令提示符,然后键入以下命令
tasklist/m/fi"imagename eq netbeans.exe"
输入netbeans.exe而不是你的exe文件名.
Dependency Walker可以帮助您确定将加载哪个.dll.
只需转到命令提示符并键入tasklist /m
,您将看到特定程序使用的DLL文件列表.