C#中的封送C数组

可能重复:
在c#中编组c结构

实际C结构:

typedef struct procedure { char code[8]; }procedure; typedef struct p45_cldxed24 { procedure p45_cldxed[8]; }p45_cldxed24; 

p45_cldxed24的等效C#结构是什么? 具体来说,你将如何编组arrays?

检查一下

它是否正确?

 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] struct p45_cldxed24 { [MarshalAsAttribute(UnmanagedType.LPArray, ArraySubType=UnmanagedType.Struct,SizeConst = 8,SizeParamIndex=0)] procedure[] p45_cldxed; } 

我相信代码如下:

 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] struct p45_cldxed24 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] procedure[] p45_cldxed; } 

这里的关键是MarshalAs属性。