Структура Маршалла для указателя списка объектов в C # - PullRequest
0 голосов
/ 04 июля 2018

У меня есть список объектов, необходимо выполнить маршалинг от структуры к указателю и отправить в неуправляемый код,

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 объектов, то мы должны повторять это много раз.

...