Мне нужно вызвать из приложения C # функцию C (из DLL), объявленную как:
void fillBuffer( uint8_t ** pData, uint32_t * size );
Эта функция проверяет, является ли pData
ненулевым, и в случае, если она заполняет буфер некоторыммодные данные.Переменная size
используется в качестве входного параметра для ограничения количества байтов, которые будут записаны в pData
, и в качестве выходного параметра, чтобы сообщить, сколько байтов было фактически записано.
В случае pData
равно нулю, он выделит сам буфер и вернет в size
количество выделенных байтов.
Как я могу объявить и вызвать эту функцию из приложения C # (избегая unsafe
если возможно) в обоих сценариях (прохождение уже выделенного буфера или разрешение на его выделение для меня)?