У меня есть код, который реализует шаблон наблюдателя в C ++. Я создал код Java JNI, который похож на код C ++ для регистрации наблюдателя. Когда я регистрирую наблюдателя в Java, он вызывает native
метод, который создает слушатель в C ++.
Я хочу, чтобы вызовы методов в C ++ вызывали эквивалентные методы в моем Java-наблюдателе, который зарегистрирован. Я создал код для этого, передав JNIEnv
к классу наблюдателя в C ++, но я слышал, что это небезопасно. Есть ли лучшая практика для этого типа реализации?
Ты можешь использовать SWIG директора в ответ на этот вопрос: Как передать указатель Java-функции на собственный код C ++
Я также рекомендовал бы использовать SWIG вместо JNI напрямую.
Других решений пока нет …