我有一个枚举myEnum
,以及C ++中的以下方法:
void MyClass::SetValue(myEnum newValue);
void MyClass::GetValue(myEnum& theValue);
我正在使用" enums.i",而myEnum
已正确转换为Java enum
。 SetValue
正常工作,但是GetValue
接受了一个我无法创建的奇怪的SWIGTYPE_p_myEnum_ptr类。
有没有办法自动为所有enum
引用创建包装器?类似于包含枚举值的类,所以它可以被传递并修改?
答案 0 :(得分:1)
查看Swig文档重新打字图(特别是section 10.1.1 of SWIG 3),有一个类型图会自动将void f(T&)
公开为T f()
,您必须告诉SWIG使用它为你的类型。您可以在类型上使用%apply
类型地图的OUTPUT
,这与
%apply MyEnum& OUTPUT {MyEnum& theValue};