Как вызвать Java из C ++, используя SWIG? - PullRequest
7 голосов
/ 07 июля 2010

Я могу вызывать код C ++ из Java с помощью SWIG, но я не могу найти никакой документации о том, как сделать обратное (вызов Java из C ++).

Официальная документация SWIG гласит (http://www.swig.org/Doc1.3/Java.html#java_overview): "SWIG позволяет программе Java легко вызывать код C / C ++ из Java. Исторически SWIG не могла генерировать какой-либо код для вызова кода Java.из C ++. Однако SWIG теперь поддерживает полный межязыковой полиморфизм, и генерируется код для вызова из C ++ в Java при переносе виртуальных методов C ++. "

Но я не могу найти, где говорится, как это сделать!Любая помощь очень ценится. Спасибо.

Ответы [ 2 ]

5 голосов
/ 09 декабря 2011

На самом деле это возможно, и я реализовал это на основе наследования виртуального класса от C ++ до Java.

Вы можете найти решение в главе " 24.5 Кросс-языковой полиморфизм с использованием директоров " Java-части документа SWIG.

1 голос
/ 07 июля 2010

Исходя из довольно странной формулировки утверждения, я бы сказал, что то, что вы хотите, не всегда возможно.«... вызывать из C ++ в Java при переносе виртуальных методов C ++».«... вызов ...» заставляет меня верить, что вы вызываете защищенные или открытые члены унаследованного интерфейса и «... при переносе виртуальных методов C ++» заставляет меня заключить, что вы можете делать это только тогда, когдавы переопределяете унаследованный интерфейс.Похоже, фактический вариант использования очень узкий.

Но тогда я просто основываюсь на формулировке вставленного вами текста.Это может или не может помочь вам.

...