元素从c到c的双打数组

时间:2013-09-05 23:26:06

标签: c# c arrays pinvoke marshalling

有人可以告诉我我应该写些什么来编组C和C#之间的一系列双指针吗?

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

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

我对之前的2个查询有过许多倾向性的共鸣,我在这个相同的主题上已经阅读了另外十几个问题,但我在其中任何一个问题都找不到这个问题的简单答案。

1 个答案:

答案 0 :(得分:0)

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

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

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