возврат Marshal LPArray из unmanaged dll

223
10 апреля 2019, 15:00

Как грамотно вернуть массив структур из C unmanaged кода воспользовавшись опцией LPArray? На текущий момент маршалю все в ручную, возвращая IntPtr, но хотелось бы разобраться с LPArray.

Вот примерно такой код:

[DllImport("Dll.dll", 
     CallingConvention = CallingConvention.Cdecl)]
     [return: [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 1)]
public static extern IntPtr[] test();

Ругается на то что маршал не может выровнять или сеариализовать тип return.. Пробовал по разному декларировать выход, от IntPtr до имени структуры.. не помогает.

READ ALSO
Начальное значение Random() в C#

Начальное значение Random() в C#

Подскажите, пожалуйста, на что указывает и влияет начальное значение в объявлении нового объекта RandomДопустим 999, в нашем случае

203
Как показать реальное время, если оно неправильное на компьютере?

Как показать реальное время, если оно неправильное на компьютере?

возник такой вопрос : А что если допустим на компе у владельца неправильное время, тогда получается нужно его откуда-то выудить, может аля...

296
Как перезапустить форму Windows form?

Как перезапустить форму Windows form?

Всем приветВопрос следующий: у меня есть форма и мне надо ,чтоб пользователь по нажатию на кнопку "Reset" обнулял форму(возвращал ее в исходное...

341
Проблема с подсчетом суммы в C#

Проблема с подсчетом суммы в C#

Задача: Даны числовой ряд и некоторое число e>0Найти сумму тех членов последовательности ряда, модуль которых больше или равен заданному e

212