Вызов C ++ кода из Java (GCJ) - PullRequest
7 голосов
/ 08 июня 2010

Я пытаюсь вызвать C ++ из Java, используя GCJ, используя CNI, пока я могу вызывать код Java из C ++. Как я могу вызвать C ++ из Java, используя CNI?

Ответы [ 3 ]

4 голосов
/ 08 июня 2010

Я немного дополню ответ pcent, чтобы прочитать GCJ / CNI Docs .

Я считаю, что ключом является понимание всей концепции "класса CNI C ++".

  • Создание класса CNI C ++ объясняется на этой странице .
  • Вы можете вызывать код Java из класса CNI C ++ (при условии, что вы создали файлы заголовков)- это то, что вы уже делаете (вызывая Java из C ++).
  • Ключевым моментом является то, что методы CNI C ++ могут быть вызваны из Java (потому что эти классы имеют ряд ограничений насделать их Java-совместимыми).А поскольку класс CNI является только (конкретным видом) классом C ++, вы также можете связать его с другими библиотеками так же, как и с любым классом C ++.

Большая часть документации описывает, как соглашения Java переводятся в класс CNI C ++.

0 голосов
/ 08 июня 2010

Я не хороший Java-программист, но я знаком с взаимодействием C # / C ++. Для меня лучшим решением для вызова из нативного C ++ в управляемый C # было использование Callbacks . Я думаю, что это относится и к JNI

Попробуйте прочитать: http://www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html

0 голосов
/ 08 июня 2010

Попробуйте прочитать GCJ / CNI Docs

...