мои классы 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 всегда показывает одно и то же значение для разных экземпляров !!