Как маршаллизировать (в идеале в SWIG) строку C # [] в строку C ++ *? - PullRequest
2 голосов
/ 30 сентября 2010

Я новичок в программировании на C # и пытаюсь вызвать функции переноса в C ++.

В C ++ у меня есть функция следующего прототипа

string* swap(string* ptr1, string*ptr2){
    //swap the array of string
    return ptr2;
}

Как мне обернутьфункция в C # (в идеале, используя SWIG , но не обязательно)?

1 Ответ

1 голос
/ 30 сентября 2010

У меня был такой же вопрос для Java.

Для Java я не нашел ничего заранее упакованного и тривиального в использовании.Я должен был определить свои собственные карты типов.

Если вы не можете получить более качественные ответы на C #, вы можете начать с кода SWIG / C ++, описанного в SWIG: Как обернуть std :: string &(std :: string, переданная по ссылке) .

Вам необходимо заменить ссылки на типы Java, методы JNI (те, которые включают ссылку на "jenv") и "JavaThrowException".

Эти файлы из SWIG также могут содержать некоторые примеры кода для C #:

  • swig / Lib / csharp / std_string.i
  • swig / Lib / csharp /typemaps.i
...