Как я могу определить карту типов для SWIG, которая преобразует ссылочный аргумент из C ++ в C # - PullRequest
1 голос
/ 29 июля 2010

У меня есть библиотека C ++, которая предоставляет следующие перечисления и функции:

typedef enum en{
  a,
  b
}myEnum;

int myFunction( myEnum &varToSet )
{
  varToSet = 1;
  return 0;
}

Функция в C # Wrapper должна выглядеть примерно так:

public static int myFunction( ref myEnum varToSet )

Я попытался получить этот результат, используя следующую карту типов в файле интерфейса Swig:

%typemap(cstype) myEnum & "ref myEnum"
%typemap(csin) myEnum & %{ref $csinput%}  

Swig изменил тип с SWIGTYPE_p_myEnum на ref myEnum в Wrapper.cs, но не в WrapperPINVOKE.cs. Что мне здесь не хватает?

1 Ответ

0 голосов
/ 17 мая 2011

Вам нужно добавить карту типов для imtype:

%typemap(imtype) myEnum & "ref myEnum"
...