找到一个非托管的DLL API?

时间:2008-10-10 16:20:42

标签: c# api dll

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

5 个答案:

答案 0 :(得分:7)

对于您没有引用的本机DLL,可以使用Visual Studio SDK中的dumpbin实用程序来提取DLL中导出函数的列表。

Dumpbin引用位于:http://msdn.microsoft.com/en-us/library/c1h23y6c(VS.71).aspx

CodeProject页面提供了有关如何结合使用dumpbin以及查找正确的P / Invoke签名的其他详细信息,请访问:http://www.codeproject.com/KB/mcpp/usingcppdll.aspx#Retrieve

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我只想添加如果它是一个COM程序集,就像VB6 COM组件一样,它可以在Visual Studio的Object Explorer中浏览,这非常好,因为它打破了一切都很适合你。