экземпляр класса java jni store для последующего повторного использования - PullRequest
0 голосов
/ 06 января 2012

мои классы Java, которые отражают классы C ++, содержат поле, содержащее указатель C ++ на экземпляр C ++, эта часть работает как обычно, как и многие другие оболочки

То, что я хочу сделать, это также наоборот

Я хочу иметь возможность сохранять экземпляр java в поле userdata класса C ++

, когда библиотека c ++, которую я упаковываю, возвращает экземпляр класса c ++, который я хочу иметь, чтобы получить userdata ипреобразовать его обратно в экземпляр класса Java, который содержит этот указатель, я НЕ хочу воссоздавать новый объект Java с указателем, но повторно использовать исходный экземпляр класса ...

, чтобы помочь этому объяснению я опишу подробнопример жизненного цикла

создается новый объект Java, конструктор объекта Java вызывает нативную функцию, с помощью которой «this» создает объект C ++, в котором объект Java отражает зеркальную ссылку «this», хранящуюся в C ++.Поле "userData" объекта

, когда другая функция C ++ возвращает указатель c ++, этот указатель используется для извлеченияe userData, содержащая ссылку на экземпляр java, который его инкапсулирует

экземпляр java исходного объекта возвращается в java ...

, где я передал значение java этому в C ++и приведение его к длинному printf всегда показывает одно и то же значение для разных экземпляров !!

1 Ответ

0 голосов
/ 03 мая 2012

когда другая функция C ++ возвращает указатель c ++, этот указатель используется для извлечения пользовательских данных, содержащих ссылку на экземпляр java, который его инкапсулирует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...