[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] ldd - 查看 exe 所依赖的 dll

C:\>ldd
ldd for Windows, Version 1.0
usage:
ldd FILE...

C:\>


示例:
C:>ldd wget.exe curl.exe FLVExtractCL.exe
wget.exe
        ADVAPI32.dll => C:\WINDOWS\system32\ADVAPI32.dll
        GDI32.dll => C:\WINDOWS\system32\GDI32.dll
        KERNEL32.DLL => C:\WINDOWS\system32\kernel32.dll
        USER32.dll => C:\WINDOWS\system32\USER32.dll
        WSOCK32.dll => C:\WINDOWS\system32\WSOCK32.dll
curl.exe
        KERNEL32.dll => C:\WINDOWS\system32\kernel32.dll
        LIBEAY32.dll => D:\wchx\command line tools\LIBEAY32.dll
        SSLEAY32.dll => D:\wchx\command line tools\SSLEAY32.dll
        WS2_32.dll => C:\WINDOWS\system32\WS2_32.dll
        msvcrt.dll => C:\WINDOWS\system32\msvcrt.dll
        wldap32.dll => C:\WINDOWS\system32\wldap32.dll
FLVExtractCL.exe
        mscoree.dll => C:\WINDOWS\system32\mscoree.dll

C:\>


mscoree.dll 表示程序需要 .NET Framework。

--------------------------------------------
官网: https://code.google.com/p/win-ldd/
--------------------------------------------

注:11 楼有单文件版

MSVCP100.dll MSVCR100.dll.7z
http://pan.baidu.com/share/link?shareid=347430309&uk=1124163200

http://bcn.bathome.net/s/tool/index.html?key=ldd

貌似需要 C++2010 支持

TOP

本帖最后由 tmplinshi 于 2012-10-31 00:04 编辑

回复 2# CrLf

是的。

C:\>ldd ldd.exe
ldd.exe
        KERNEL32.dll => C:\WINDOWS\system32\kernel32.dll
        MSVCP100.dll => C:\WINDOWS\system32\MSVCP100.dll
        MSVCR100.dll => C:\WINDOWS\system32\MSVCR100.dll

C:\>


我把这两个 dll 传上来吧。

TOP

作为CUI的检测工具应该说很不错。
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

dependency walker 可以胜任这个

TOP

tasklist /m 可以间接实现,论坛有这个代码。。。
SOS --- >> lllsoslll@163.com

TOP

回复 6# lllsoslll


    这个好像是不用启动进程的

TOP

tasklist /m 可以间接实现,论坛有这个代码。。。
lllsoslll 发表于 2012-10-30 19:35



tasklist /m 只能查看正在运行的程序吧。

TOP

本帖最后由 wc726842270 于 2012-10-31 03:55 编辑

有个小问题,它是不是只是显示现存的文件?还是只会显示所需的文件,
当然这个都可以弥补,不过有些麻烦
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

本帖最后由 tmplinshi 于 2012-10-31 07:43 编辑
有个小问题,它是不是只是显示现存的文件?还是只会显示所需的文件,
当然这个都可以弥补,不过有些麻烦
wc726842270 发表于 2012-10-31 03:53



    是显示所需的文件。例如,我把 iconv.exe 依赖的 dll 删除后:
C:\>ldd iconv.exe
iconv.exe
        KERNEL32.dll => C:\WINDOWS\system32\kernel32.dll
        libiconv2.dll =>
        libintl3.dll =>
        msvcrt.dll => C:\WINDOWS\system32\msvcrt.dll

C:\>

TOP

受不了,一个小工具还要两个DLL才能用,自己编译了一个单文件版。

http://bcn.bathome.net/s/tool/index.html?key=ldd

TOP

回复 11# Demon


    谢谢!

TOP

本帖最后由 yu2n 于 2012-11-4 17:57 编辑

写了一个匹配的批处理,便于将找到的.dll文件复制出来。(支持直接拖放与手动输入单个文件)
  1. cls&@echo off&title ldd for Windows, Version 1.0
  2. If '%1' EQU '' (
  3.   set /p p=Drag and drop an .exe program files here:
  4. ) Else (
  5.   set p=%1
  6. )
  7. If '%2' NEQ '' Exit
  8. If Not Exist "%~dp0ldd.exe" Exit
  9. FOR /F "tokens=1,* delims=^?^?" %%i in ('echo _??%p%') do (
  10.    set creat_folder=%%~nj
  11.    If /i "%%~xj" NEQ ".exe" Exit
  12.    If Not Exist "%~dp0%%~nj" mkdir "%~dp0%%~nj"
  13. )
  14. FOR /F "skip=1 tokens=1,* delims=^=^> " %%i in ('cls^&"%~dp0ldd.exe" %p%') do (
  15.    If Exist "%%j" (
  16.       set/a a=a+1
  17.       echo ^-^> Copy %%j
  18.       copy "%%j" "%~dp0%creat_folder%">nul 2>nul
  19.    ) Else (
  20.       echo [x]File "%%j" Not Found !
  21.    )
  22. )
  23. echo Done! The %a% dll files successfully copied
  24. pause
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表