【问题标题】:How to view DLL functions?如何查看DLL函数?
【发布时间】:2011-05-25 05:53:18
【问题描述】:

我有一个 DLL 文件。如何查看该 DLL 中的函数?

【问题讨论】:

标签: windows dll


【解决方案1】:

你可以试试 Visual Studio 中的对象浏览器

选择编辑自定义组件集。从那里,您可以从各种 .NET、COM 或项目库中进行选择,或者只需通过 Browse 导入外部 DLL。

【讨论】:

  • Visual Studio 在使用浏览和选择 DLL 时提示“无法浏览所选组件”:( - msdn.microsoft.com/query/…
  • 对象浏览器已移至View。是的,它不起作用(为什么会它,它是微软)
  • 更多的是供应商而不是 MS 问题。 Probablay dll 中没有类型库。见:stackoverflow.com/a/13903040/1614903
  • @HolgerBöhnke 在 userdll32 中也没有类型库
  • @Kimmax 是的,但 user32.dll 是本机 Windows DLL,而不是 COM 服务器。只有 COM 服务器(例如 COM dll、ActiveX 控件、*.ocx ...)可能具有类型库,如果它们首先被编译的话。对于本机(=非 COM 对象)DLL,此处提到的其他一些工具(dumpbin 等)可能会起作用。也就是说,如果 DLL 按名称而不是仅按序号导出它的函数。
【解决方案2】:

如果一个 DLL 是用一种 .NET 语言编写的,并且如果您只想查看哪些函数,那么项目中有对这个 DLL 的引用。

然后双击引用文件夹中的DLL,然后你会在OBJECT EXPLORER窗口中看到它有什么功能。

如果您想查看该 DLL 文件的源代码,您可以使用反编译器应用程序,例如 .NET reflector。

【讨论】:

    【解决方案3】:

    没有告诉我们这个 DLL/程序集来自什么语言,我们只能猜测。

    那么.NET Reflector 怎么样。

    【讨论】:

    • 那么这应该是你的人。
    • .net 反射器以前是免费的,但现在是商业产品。对于 .net dll,“JustDecompile”是一个免费的替代方案。
    • 反编译器只告诉你有哪些功能。我们可以看看他们的实现吗?
    【解决方案4】:

    .NET ildasm

    ildasm 帮助甚至转储方法体,但要编辑 .DLL,您还需要任何十六进制编辑器。

    修复 Help Viewer v2.x 问题的 ildasm 示例:
    错误:“更新内容时出错:文件 '???.cab' 未由 Microsoft 签名”

    here could be image
    more example files

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案5】:

    使用dumpbin command-line

    • dumpbin /IMPORTS <path-to-file> 应该提供导入该 DLL 的函数。
    • dumpbin /EXPORTS <path-to-file> 应该提供它导出的函数。

    【讨论】:

      【解决方案6】:

      使用 JetBrains 的 dotPeek。

      https://www.jetbrains.com/decompiler/

      dotPeek 是基于 ReSharper 的免费工具。它可以可靠地反编译 将任何 .NET 程序集转换为 C# 或 IL 代码。

      【讨论】:

      • 所以这是特定于使用 .NET 框架的 DLL 的?
      【解决方案7】:

      对于 .NET DLL,您可以使用 ildasm

      【讨论】:

      • 因为 ildasm 是 Microsoft 产品,如果您安装了 Visual Studio,则默认安装在 PC 上。我相信这是最好的选择。它还有一个 UI,因此您不需要使用命令行。谢谢
      • 可以找到:C:\Program Files (x86)\Microsoft SDKs\Windows\\bin
      【解决方案8】:

      使用免费的DLL Export Viewer,非常好用。

      【讨论】:

      • @sumit 你能说得更具体点吗?这个工具多年来一直对我有用。
      • 其实这个工具很好用,简单明了,正是我需要的。
      • 它是生成方法/函数列表的好工具,但它不显示方法的参数(也不显示它们的类型)。
      • 非常棒的一款小巧紧凑的产品,而不是像官方 MS 产品通常那样臃肿的产品。
      【解决方案9】:

      对于本机代码,最好使用Dependency Walker。也可以使用 Visual Studio 附带的dumpbin 命令行实用程序。

      【讨论】:

      • 使用较新版本的 VS,尝试将 DumpBin 作为 External Tool
      • 维基百科上有一篇关于 Dependency Walker 的文章。显然该程序已经过时并且不能与 Windows 的一些新功能一起使用,但有一个可用的替代品:github.com/lucasg/Dependencies
      • 这个替换对我来说不起作用。我不会像依赖晚期依赖步行者那样依赖它很长时间。不幸的消息。
      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 2018-02-12
      • 2013-08-17
      • 2011-03-01
      • 2012-03-23
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多