从 C 到 C# 的双精度数组的封送数组

本文关键字:数组 双精度 | 更新日期: 2023-09-27 18:30:31

有人可以告诉我我应该写什么来在 C 和 C# 之间编组双指针数组吗?

struct foo { double *abc[20]; };
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class foo {  // ??? abc;   }

我对之前的 2 个查询有很多倾斜的共鸣,我在这里阅读了另外十几个关于同一主题的问题,但我在其中任何一个都找不到这个问题的简单答案。

从 C 到 C# 的双精度数组的封送数组

好的,这是这个问题的简单直接的答案:

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public IntPtr[] abc;

诀窍是,与直觉相反,您必须使用 IntPtr,尽管这是一个双指针数组,而不是 int 指针。