gpt4 book ai didi

c# - 将动态大小数组编码到结构中

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

我如何定义具有动态大小数组的结构?

对吗?

struct MyStruc { 

public int len;
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]
public int buf[];
}

最佳答案

假设您想要一个包含指向数组的指针的结构。

将指向数组的指针声明为IntPtr并使用 Marshal.AllocHGlobal 手动编码数组内容, Marshal.Copy等等

假设您需要一个可变大小的结构,而不是包含指向数组的指针的结构。

您不能使用 p/invoke 编码可变大小的结构。您至少有以下两个选择:

  1. 将结构分成两个参数。
  2. Marshal.AllocHGlobal 手动编码结构, Marshal.Copy

关于c# - 将动态大小数组编码到结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22811701/

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