将参数从C/C++JNI传递给Java,得到修改后的值
Pass parameter from C/C++ JNI to Java and get modified value
简短问题:
将一个参数从C++/C JNI传递给应该修改的Java方法。修改后的结果在C/C++JNI中可用吗?有什么办法吗?除了从java返回和回调之外?
如果以上内容不清楚,则继续:
使用jcharArray从C/C++JNI调用以下函数。下面的Java函数应该处理传递的char数组,并将最终结果存储在其中。因此,修改后的结果将在C/C++JNI中返回。
我有一个java函数接受下面中的char[]
void GetName(char[] s)
{
String t = "Test";
// Work on t and store the result in s
s = t.toCharArray();
}
我怎样才能做到这一点。。。我得到了所有其他的例子,比如Java调用C/C++。
Java只支持传递值。如果你想返回一个参考,你需要任一
a( 返回
char[] getName();
b( 传递可变对象以引用它
void getName(char[][] nameArray) {
nameArray[0] = t.toCharArray();
}
c( 通过回电
void getName(Consumer<char[]> listener) {
listener.accept(t.toCharArray());
}
因此,对于我的场景,我修改了如下所示的声明
void GetName(char[] s) to void GetName(PersonName obj)
现在,我在JNI中创建一个PersonName对象,并将其作为参数传递给java函数。稍后,我将使用相同的对象来调用PersonName类的getter方法,以获取值char[]RetriveName((;
我还发现,使用jfield也可以获得类数据成员的值,但这些成员应该是公共
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 独立读取-修改-写入顺序
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 对于结构,表达式必须是可修改的ivalue
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 在java中解决这段代码时面临循环中的问题
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 尝试用java代码编译和运行c++代码
- 修改创建帐户程序
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 将参数从C/C++JNI传递给Java,得到修改后的值
- 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java
- 使用C 修改Java方法/字节码
- 如何在 NDK 中修改 Android 位图,以便我可以在 Java 端使用它
- Java中TreeMap的并发修改
- 为什么Java必须抛出并发修改异常?
- 修改双精度的最低有效位(Java和c++)
- JavaScript, Java, Php或c++密码加密-修改算法