是否可以通过JNI将大型结构从C传递给Java?
有人可以给我一些可能的解决方案吗?
答案 0 :(得分:3)
声明一个指向java类结构的指针,如下所示:
protected long ptrToX;
接下来,设置它:
(*env)->GetFieldID(...)
(*env)->GetLongField(...)
(*env)->SetLongField(...)
要获得它,只需按照上面提到的前两个步骤。
永远记住要包含一个终结器,它将在对象被垃圾收集时解除指针的释放。或者,如果您不希望因使用终结器而导致性能损失,只需提供一个取消分配指针的terminate()方法。
答案 1 :(得分:1)
最好切换到JNA,这是从C编程到JAVA的便捷方式。