gpt4 book ai didi

c# - p/invoke C函数返回指向结构的指针

转载 作者:太空狗 更新时间:2023-10-30 00:36:48 24 4
gpt4 key购买 nike

我如何在 C# 中声明一个返回结构指针的 C 函数?

我相信下面是一种方法,然后是 Marshal.PtrToStructure 以获得实际的结构值。

// C-function
SimpleStruct * Function(void);

// C# import
[DllImport("MyDll.dll")]
public static extern IntPtr Function();
  1. 我说得对吗?
  2. 还有其他方法可以达到同样的效果吗? (按值取回struct就好了)

最佳答案

由于该函数返回一个指针(希望不是本地分配的指针?)您最好的选择是手动编码它(通过 Marshal.PtrToStructure )。

如果它是一个参数,您可以使用 PInvoke Interop Assistant 创建结构的托管版本,然后通过 ref 或 out 传递它。

关于c# - p/invoke C函数返回指向结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779444/

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