Вы можете быстро начать работать с чем-то вроде этого в своем интерфейсе SWIG:
%include <std_vector.i>
%template(VectorUChar) std::vector<unsigned char>;
Это должно дать вам реальный тип, с которым вы можете работать из C #, это прокси для C ++ std ::вектор.(Это будет работать для вашей bar()
функции, например, но вряд ли будет беспроблемным в точке вызова).
Поскольку у вас уже есть Byte[]
, вы, вероятно, могли бы собрать карту типов, котораяпрозрачно создает вектор из указателя + длины, если это более полезно.