Новый для 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#. Любая помощь приветствуется.