我有一个 c++ 类,我使用 swig 将它包装到 java 中。我想为这个类扩展或添加一个新的成员函数,但我也想使用我自己的jni函数作为这个新的成员函数或者让我自己的jni函数在这个新的成员函数中被调用。我怎么能在 swig 中做到这一点?我知道 %native,但它似乎只生成静态方法,但我希望它生成对象方法。
问问题
731 次
1 回答
0
如果您只想native
在其中一个代理类中添加一个额外的方法,您可以使用以下方法:
%module test;
%typemap(javacode) foo %{
public void native HandRolled();
%}
struct foo {
void bar();
};
void test(foo& f);
就个人而言,如果您有很多不想%native
直接使用的本机代码,我倾向于将它们放入单独的类中,即您将 SWIG 生成的部分和手册、JNI 部分作为不同的项目。然后,您可以根据需要使用类型映射将纯 JNI 部分“按摩”到 SWIG 生成的部分中。
于 2012-06-02T13:02:54.467 回答