C++ 使用SWIG[C+;+;to Java]处理对指针/双指针的引用

C++ 使用SWIG[C+;+;to Java]处理对指针/双指针的引用,c++,pointers,reference,swig,C++,Pointers,Reference,Swig,我的代码有一个像 类IExample{~IExample();//纯虚拟方法…} 继承接口的类,如 class-CExample:public-IExample{protected:CExample();//纯虚拟方法的实现…} 和一个全局函数来创建该类的对象- createExample(IExample*&obj){obj=new-CExample();} 现在,我正在尝试使用SWIG获取Java API包装器,SWIG生成的接口有一个类似于IExample(长cPtr,布尔cMemoryO

我的代码有一个像

类IExample{~IExample();//纯虚拟方法…}

继承接口的类,如

class-CExample:public-IExample{protected:CExample();//纯虚拟方法的实现…}

和一个全局函数来创建该类的对象-

createExample(IExample*&obj){obj=new-CExample();}

现在,我正在尝试使用SWIG获取Java API包装器,SWIG生成的接口有一个类似于IExample(长cPtr,布尔cMemoryOwn)的构造函数
,全局函数变为
createExample(IExample obj)

问题是当我这样做的时候

iexampleexobject=newiexample(examplelaryjni.new_plong(),true/*或false*/);
createExample(exObject)

<> >代码> CytAdExcess(…)>CtTr(long)变量没有得到更新。理想情况下,此变量应包含
CExample
对象的地址

我在文档中读到,类型映射也可以用来处理输出参数和指针引用;然而,我无法找到使用类型映射来解决此问题的合适方法,或者任何其他解决方法


请建议我是否做错了什么,或者在这种情况下如何使用typemap?

我不知道如何使用typemaps解决这个问题;Java不支持引用参数,因此转换将非常复杂

为什么不让
createExample()
返回一个
IExample*
?如果需要其他内容的返回值,我建议返回
std::pair
,或类似的结构化类型