我用C#写作
如何找出哪些方法/函数可以在不属于windows的非托管dll中使用?
例如:我的计算机上安装了一些软件,它有一个dll,我想知道我的选项是什么,以创建连接到该软件的代码?
答案 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
中浏览,这非常好,因为它打破了一切都很适合你。