marshaling an array of structs
-
trying to marshall over some data from an unmanaged dll, however i heard that the marshaller cannot marshall an array of structs, in a struct. c++:
#pragma pack(1) typedef struct{ unsigned short propCnt; PRO_PROPERTY prop[200]; <-- this shit here... } PRO_CHANGEDPROPERTY; #pragma pack() #pragma pack(1) typedef struct{ long apiCode; PRO_DATA data; } PRO_PROPERTY; #pragma pack()
c#:[StructLayout(LayoutKind.Sequential, Pack = 1)] public unsafe struct ProChangedProperty { public UInt16 propCnt; [MarshalAs(UnmanagedType.Struct, SizeConst = 200)] public ProProperty[] prop; } [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct ProProperty { public Int32 apiCode; public ProData data; }
i cant seem to figure this one out, any help would be appreciated.