我正在用 C# 编写。
如何找出可以在不属于 Windows 的非托管 dll 中使用的方法/函数?
示例:我在我的计算机上安装了一些软件,它有一个 dll,我想知道我有哪些选择来创建连接到该软件的代码?
5 回答
对于您没有参考的本机 DLL,您可以使用 Visual Studio SDK 中的 dumpbin 实用程序来提取 DLL 中的导出函数列表。
垃圾箱参考在这里:http: //msdn.microsoft.com/en-us/library/c1h23y6c (VS.71).aspx
CodeProject 页面提供了一些关于如何使用 dumpbin 以及查找正确的 P/Invoke 签名的更多详细信息:http: //www.codeproject.com/KB/mcpp/usingcppdll.aspx#Retrieve
PInvoke.net是 .NET 互操作的绝佳资源。它们不仅列出了 Windows 本机库中可用的函数,还列出了您需要在 .NET 代码中使用的签名。
使用 Depends.exe(与 VS 一起提供)。
Depends 将显示可以使用 Pinvoke 从托管代码调用的所有导出函数。
我读了一篇关于 PInvoke Interop Assistant 的博客,它也可以处理我们自己的 DLL http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120
我想补充一点,如果它是一个 COM 程序集,例如 VB6 COM 组件,它可以Object Explorer
在 Visual Studio 中浏览,这非常好,因为它可以很好地为您分解所有内容。