-4

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

struct foo { double *abc[20]; };

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

我对之前的 2 个查询有很多间接的反应,并且我在这里阅读了关于同一主题的另外十几个问题,但我无法在其中任何一个中找到这个问题的简单答案。

4

1 回答 1

0

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

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

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

于 2013-09-05T23:47:35.577 回答