有人可以告诉我我应该写些什么来编组C和C#之间的一系列双指针吗?
struct foo { double *abc[20]; };
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class foo { // ??? abc; }
我对之前的2个查询有过许多倾向性的共鸣,我在这个相同的主题上已经阅读了另外十几个问题,但我在其中任何一个问题都找不到这个问题的简单答案。
答案 0 :(得分:0)
好的,这是这个问题的简单直接的答案:
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public IntPtr[] abc;
诀窍是,违反直觉,你必须使用IntPtr,尽管这是一个双指针数组,而不是int指针。