如何为SWIG定义一个类型映射,将引用参数从C ++转换为C#

时间:2010-07-29 08:32:02

标签: c# c++ swig

我有一个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来获得此结果:

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

Swig在Wrapper.cs中将类型从 SWIGTYPE_p_myEnum 更改为 ref myEnum ,但在WrapperPINVOKE.cs中没有。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您需要为imtype添加一个类型图:

%typemap(imtype) myEnum & "ref myEnum"