Как передать C# byte [] в C ++ unsigned char * через SWIG? - PullRequest
0 голосов
/ 02 мая 2020

Новый для SWIG. Я посмотрел высоко и низко, и не могу найти простой пример для передачи C# байта [] в C ++ без знака char * через SWIG.

Функция C ++ выглядит следующим образом:

void ClassName::MethodName(const unsigned char *inputData, const int length)

Файл .i выглядит следующим образом:

%module ClassNameSwig
%{
#include "ClassName.h" 
%}
%include "std_string.i" 
%include "arrays_csharp.i"
%include "ClassName.h"

.i компилируется. Файлы .cs компилируются. Теперь мне нужно вызвать метод и передать ему байт [] следующим образом:

            var inst = new ClassName();
            byte[] byteData = ... ; // (fill with some data)
            inst.MethodName(byteData, byteData.Length);

Последняя строка не компилируется: CS1503 Аргумент 1: невозможно преобразовать из 'byte []' в 'SWIGTYPE_p_unsigned_char'

Мне не хватает карты типов? Который из? Не удается найти ответ в документации SWIG C#. Любая помощь приветствуется.

...