如何在C ++代码中保留C ++对象? 可能?

首先,我有一个遗留的C ++库,我正在使用新的UI将我的应用程序迁移到Android。

在运行时期间,可能会动态创建和销毁多个C ++对象。 我构建了一组JNI本机方法来调用库来实现它。 但是我应该在哪里保留这些C ++对象? 如果不必要,我必须跟踪它们并释放它们。

到目前为止,我只知道Java无法引用C ++对象。 是否有可能创建一个包含对C ++对象的引用的Java包装器类?

谢谢。

是的,这是可能的。 您可以在简单的java int中存储指向C ++对象的指针。 这正是SWIG如何做到的。

JavaCPP通过将其保存到包装对等Pointer对象来处理这个细节。