从本地dll生成C# DLLImport声明

20
您知道是否有一个软件可以自动从本地DLL生成带有[ DllImport ]属性的C#代码(在.cs文件中),以便在C#代码中使用此DLL吗?

2
大多数标准映射已经完成,您可以在http://www.pinvoke.net/上查看它们 - 他们甚至有一个插件。 - BrokenGlass
这个回答解决了你的问题吗?是否有一种工具可以为任意非托管DLL生成P/Invoke签名? - StayOnTarget
1个回答

16

查看P/Invoke Interop Assistant

在封送处理中,有许多属性和规则。理解所有这些属性和规则可能有点令人生畏。为了使开发工作更加高效并简化这些属性和规则,推出了 P/Invoke Interop Assistant。它是一个工具包,可以帮助开发者高效地从 C 转换为托管 P/Invoke 签名或反之。这在概念上类似于用于 COM 互操作的 TlbImp,它基于未管理端的某些正式描述生成受管代理入口点,但它适用于 P/Invoke。该工具包最初发布于 MSDN Magazine 网站上,日期为2008年1月。


2
如果您没有源代码或至少有.lib文件,那么您就无法知道DLL函数期望什么参数(如果声明为stdcall,则通常如此)。 - Eugene Mayevski 'Callback
@Patrice,恐怕你没有运气了。我希望你至少有文档,这将有助于手动生成签名。 - Darin Dimitrov
@Patrice Pezillier - 你确定你没有DLL接口的头文件吗? - Steve Townsend
如果我有头文件.h和dll,我可以使用P/Invoke互操作助手吗? - Patrice Pezillier
2
是的,它应该可以使用头文件。查看这篇博客文章 - Darin Dimitrov
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接