Вызов C ++ кода из Java (GCJ)
-
24-10-2019 - |
Вопрос
Я пытаюсь вызвать C ++ из Java, используя GCJ, используя CNI, пока я могу вызвать код Java из C ++. Как я могу вызвать C ++ из Java, используя CNI?
Решение
Я немного продлится на ответ PCCount, чтобы прочитать Gcj/cni документы.
Я считаю, что ключ - это понять всю концепцию «CNI C ++ класса».
- Создание класса CNI C ++ объясняется в эта страница.
- Вы можете вызвать код Java из класса CNI C ++ (при условии, что вы сгенерировали файлы заголовков) - это то, что вы уже делаете (вызов Java из C ++).
- Ключевым моментом является то, что Методы CNI C ++ могут быть вызваны из Java (Потому что эти классы имеют набор ограничений на них, чтобы сделать их совместимыми с Java). А поскольку класс CNI является лишь (конкретным видом) классом C ++, вы также можете связать его с другими библиотеками так же, как вы связываете любой класс C ++.
Большинство из документация описывает, как конвенции Java переводятся в классе CNI C ++.
Другие советы
Попробуйте прочитать Gcj/cni документы
Я не очень хороший программист из Java, но я знаком с Interop C#/C ++. Лучшее решение для меня, чтобы позвонить из Native C ++ в управляемый C#, было использование Обратный вызов. Анкет Я думаю, что это относится и к JNI
Попробуйте прочитать: http://www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html