【发布时间】:2011-09-13 06:17:03
【问题描述】:
我偶然发现了一个为 Microsoft 自己的非托管 DLL 生成 P/Invoke 签名的工具:PInvoke Interop Assistant
是否有类似的工具可以为第三方非托管 DLL 生成 P/Invoke 签名?
或者,以任何方式将第三方 DLL 提供给 PInvoke Interop Assistant
编辑:Actual issue 我正在尝试解决
【问题讨论】:
-
通常,您需要输入头文件,因为 DLL 导出表没有签名信息(C++ 损坏的名称除外,但 P/Invoke 无论如何都无法处理大多数 C++ 签名)。你有函数声明的头文件吗?
-
为什么说助手只针对微软的dll?它应该支持任何 C/C++ 文件。
-
任何承诺无故障 pinvoke 签名的工具都是在向您推销蛇油。由于 Windows 标头中的 SAL 注释,PInvoke Interop Assistant 运行良好。这在你的身上是不可用的。最好的工具是你耳朵之间的那个。所以。
-
@Hans Passant:如果我要在自己的东西中添加 SAL 注释,那么 P/Invoke 签名的下一步是什么?
-
您可以在 PIA 的一部分上运行 sigimp.exe 工具。我想,我自己从来没有尝试过。如果您知道如何正确执行 SAL,那么您也应该可以轻松编写自己的 [DllImport] 声明。
标签: c# .net pinvoke unmanaged function-signature