如何查看DLL函数?
Posted
技术标签:
【中文标题】如何查看DLL函数?【英文标题】:How to view DLL functions? 【发布时间】:2011-05-25 05:53:18 【问题描述】:我有一个 DLL 文件。如何查看该 DLL 中的函数?
【问题讨论】:
这个链接服务器很好 [view-contents-of-a-dll][1] [1]: ***.com/questions/6210305/view-contents-of-a-dll 【参考方案1】:你可以试试 Visual Studio 中的对象浏览器。
选择编辑自定义组件集。从那里,您可以从各种 .NET、COM 或项目库中进行选择,或者只需通过 Browse 导入外部 DLL。
【讨论】:
Visual Studio 在使用浏览和选择 DLL 时提示“无法浏览所选组件”:( - msdn.microsoft.com/query/… 对象浏览器已移至View
。是的,它不起作用(为什么会它,它是微软)
更多的是供应商而不是 MS 问题。 Probablay dll 中没有类型库。见:***.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 imagemore 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\使用免费的DLL Export Viewer,非常好用。
【讨论】:
@sumit 你能说得更具体点吗?这个工具多年来一直对我有用。 其实这个工具很好用,简单明了,正是我需要的。 它是生成方法/函数列表的好工具,但它不显示方法的参数(也不显示它们的类型)。 非常棒的一款小巧紧凑的产品,而不是像官方 MS 产品通常那样臃肿的产品。【参考方案9】:对于本机代码,最好使用Dependency Walker。也可以使用 Visual Studio 附带的dumpbin 命令行实用程序。
【讨论】:
使用较新版本的 VS,尝试将 DumpBin 作为 External Tool。 ***上有一篇关于 Dependency Walker 的文章。显然该程序已经过时并且不能与 Windows 的一些新功能一起使用,但有一个可用的替代品:github.com/lucasg/Dependencies 这个替换对我来说不起作用。我不会像依赖晚期依赖步行者那样依赖它很长时间。不幸的消息。以上是关于如何查看DLL函数?的主要内容,如果未能解决你的问题,请参考以下文章