是否可以通过 JNI 将大型结构从 C 传递到 Java?
有人可以给我可能的解决方案吗?
最佳答案
在 java 类中声明一个指向该结构的指针,如下所示:
protected 长ptrToX;
下一步,设置它:
- 使用
(*env)->GetFieldID(...) 获取字段 ID
- 使用
(*env)->GetLongField(...) 获取指针
- 使用
(*env)->SetLongField(...) 设置指针
要获取它,只需按照上面提到的前两个步骤操作即可。
始终记住包含一个终结器,该终结器将在对象被垃圾收集时负责释放指针。或者,如果您不想因使用终结器而导致性能下降,只需提供一个终止分配指针的 Terminate() 方法即可。
关于java - 如何通过JNI将大型结构从C传递到JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938106/