Вопрос

Я пытаюсь вызвать 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top