gpt4 book ai didi

c# - 生成 P/Invoke 代码的最简单方法?

转载 作者:IT王子 更新时间:2023-10-29 04:39:48 25 4
gpt4 key购买 nike

我是一名经验丰富的 .Net 程序员,但我一生中没有编写过 C/C++ 程序。现在我有了这个 C-dll、 header 和文档(第 3 方,不是来自 Win API),我需要从中调用大约十种方法。

我正在考虑使用 Platform Invoke。我找到了这三个可以为我创建代码的工具:

可能

Pinvoker 的方法似乎与 Interop 助手和向导有点不同。 Swig 我刚查的时候发现这里没有问这个问题。

这些工具的优缺点是什么?

如果我不太了解 C/C++,那么生成 P/Invoke 代码的最佳 = 最简单和最安全的方法是什么?

最佳答案

参见 http://dotnetperls.com/dllimport-interop对于互操作示例,这个 MSDN article获取更多信息。这些东西的圣经是Adam Nathan's book .

基本上,您需要确定要调用的 DLL 中的函数。这些需要用 extern 标记,以便外界可以访问它们。下一步可能会比较棘手,那就是为该函数编写一个 DllImport。这需要在托管和非托管世界之间进行映射。您将需要了解如何将 C dll 中的任何复杂数据结构编码到托管代码中。

您应该检查是否有任何类型的 DLL COM 接口(interface)。确保您确实需要先使用 P/Invoke。

SWIG 最初用于包装 C/C++ 代码以供脚本语言使用。它根据接口(interface)描述生成 C# 代码(参见 tutorial )。如果 P/Invoke 是一个选项,我不建议在 C# 中使用它。

关于c# - 生成 P/Invoke 代码的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com