【发布时间】:2015-08-31 13:00:20
【问题描述】:
我正在使用 Swig 使用 C++ 应用程序做示例 Java。我想将 两个值从 Java 传递到 C++ 并从 C++ 取回更新后的值。我将两个值作为 pass by reference 从 Java 传递到 C++。 Swig 为每个引用变量生成一个包装器方法作为数组。
我做了什么:
Test.i
%module test
%{
extern int test(int& val1,int& val3);
%}
%include <typemaps.i>
%apply int& OUTPUT { int& val1,int& val3 }
extern int test(int& val1,int& val3);
CPP 文件
int test(int& val1,int& val2)
{
val1=5;
val2=10;
}
testJNI.java:
public class testJNI {
public final static native int test(int[] jarg1,int[] jarg2);
}
test.java:
public class test {
public static int test(int[] val2, int[] val2) {
return testJNI.test(val1,val2);
Java 和 JNI 文件是 数组数据类型,用于通过引用传递变量。
还有其他方法可以在Java中生成通过引用的变量吗?
如何将每个变量的更新值从 C++ 返回到 Java不是数组格式。?
【问题讨论】:
标签: java c++ pass-by-reference swig