如何在Java代码中保留C ++对象?可能? [英] How to keep a C++ object inside Java code? Possible?

查看:156
本文介绍了如何在Java代码中保留C ++对象?可能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

First I've got a legacy C++ library, and I'm migrating my app to Android with new UI.

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

During runtime, there might be multiple C++ objects created and destroyed dynamically. I built a set of JNI native methods to call into library to get that. But where should I keep those C++ objects? I have to keep track of them and free them if they're unnecessary.

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

So far I only knew Java can't reference to a C++ object. Is it possible to make a Java wrapper class which include a reference to C++ object?

谢谢。

推荐答案

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

Yes, it's possible. You can store a pointer to your C++ object in a simple java int. That's exactly how SWIG does that.

这篇关于如何在Java代码中保留C ++对象?可能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆