Я использую API, написанный на С++ в своем коде (написание в С#). API требует параметра "Указатель на структуру". Структура состоит из "Int" и Char Массивы: например
unsafe public struct ToBePassed
{
Int32 Num1;
Int32 Num2;
Char[] Data; // or fixed Char Data[255];
}
Я не могу напрямую передать указатель структуры API, потому что в этом случае я получаю ошибку, поскольку "Указатели не могут ссылаться на структуры маршалистов". Код успешно скомпилирован, но эта ошибка возникает, когда я выполняю (отлаживаю) код.
Теперь у меня есть два варианта: 1-й: - Передача структуры по ссылке: Я хочу спросить, должен ли API, требующий, чтобы указатель на структуру мог получить адрес, когда я передаю структуру по ссылке. Обратите внимание, что API вернет данные в "Char [] Data".
2nd: - Использование Marshal.StructureToPtr: Это преобразует Структурный указатель в IntPtr. Опять Сомнение такое же, будет ли этот API правильно принят?
Спасибо за ваше время!
С уважением, Swanand