4

我正在用 C# 编写。
如何找出可以在不属于 Windows 的非托管 dll 中使用的方法/函数?
示例:我在我的计算机上安装了一些软件,它有一个 dll,我想知道我有哪些选择来创建连接到该软件的代码?

4

5 回答 5

7

对于您没有参考的本机 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

于 2008-10-10T16:51:36.320 回答
1

PInvoke.net是 .NET 互操作的绝佳资源。它们不仅列出了 Windows 本机库中可用的函数,还列出了您需要在 .NET 代码中使用的签名。

于 2008-10-10T16:27:54.323 回答
1

使用 Depends.exe(与 VS 一起提供)。

Depends 将显示可以使用 Pinvoke 从托管代码调用的所有导出函数。

于 2008-10-10T19:09:33.140 回答
0

我读了一篇关于 PInvoke Interop Assistant 的博客,它也可以处理我们自己的 DLL http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120

于 2008-10-16T02:22:17.663 回答
0

我想补充一点,如果它是一个 COM 程序集,例如 VB6 COM 组件,它可以Object Explorer在 Visual Studio 中浏览,这非常好,因为它可以很好地为您分解所有内容。

于 2012-10-04T12:47:52.937 回答