我有对象列表,必须从结构到指针进行编组,然后发送到非托管代码,
IntPtr buffer = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(StructClassA)) * ListClassA.Length);
for (int Index = 0; Index < ListClassA.Length; Index++)
{
var intrt = (IntPtr)(buffer.ToInt64() + (Index * Marshal.SizeOf(typeof(StructClassA))));
Marshal.StructureToPtr(ListClassA[Index], intrt, false);
}
ClassA
{
public float floatA;
public float floatB;
public float floatC;
public ushort Id;
public short ints;
public byte type;
}
这是正确的方式还是进行封送处理的更好选择? 问题是,如果列表包含300到500个对象,那么我们必须循环那么多次。