Gre*_*egC 34 .net c# pinvoke unmanaged function-signature
我偶然发现了一个为Microsoft自己的非托管DLL生成P/Invoke签名的工具:PInvoke Interop Assistant
是否有类似的工具将为第三方非托管DLL生成P/Invoke签名?
或者,任何方式将第三方DLL提供给PInvoke Interop Assistant
编辑:我试图解决的实际问题
Ben*_*igt 45
谷歌迅速找到了http://www.pinvoker.com/(兼容性列为VS2005,2008和2010;它似乎没有更新到新版本)
Microsoft的C++/CLI编译器也可以这样做,如果您使用/clr:safe和#include头文件,它将生成p/invoke代码,您可以使用例如ILSpy(免费)或Red Gate Reflector(以前是免费的)提取.
par*_*y72 14
我通过使用UI中标记为"SigImp Translate Snippet"的第三个选项卡,将PInvoke Interop Assistant用于非托管DLL.只需将标题复制并粘贴到"Native Code Snippet"窗口,然后按Generate(或启用Auto Generate).作为一个例子,这里有一些来自我的问题的代码.请注意,由于某种原因,错误不会出现在"错误"面板中,而是显示在生成的代码顶部的注释中.
正如几个人已经说过的那样,生成的代码应该用作指南 - 您可能需要进行更改才能获得您想要的内容.

另一种选择是SharpGenTools。SharpDX 使用它来“自动”创建 directx api 的绑定。还有CppSharp,QtSharp 使用它来生成到本机 C++/C 库的绑定。到目前为止,CppSharp 仅与 .Net Framework 6+ 兼容。