Создание объектов класса в dll на Java

Есть третья часть dll с определениями класса в C ++, который я должен использовать в Java. Я полностью знаком с общедоступными методами в dll. Теперь, чтобы использовать их, я как бы использую программу-оболочку C ++, которая создает объект и при необходимости вызывает функции в dll. И я связываю этот код C ++ с Java с помощью JNI. Есть ли другой эффективный способ сделать это. То есть создавать объекты класса и напрямую использовать его функции с помощью JNI или любой другой библиотеки на Java.


person Balanivash    schedule 09.06.2011    source источник
comment
возможный дубликат Доступ к общей библиотеке C ++ из Java: JNI, JNA, CNI или SWIG?   -  person Andy Thomas    schedule 09.06.2011
comment
ссылка выше больше не работает, но мне удалось найти снимок страницы, на которую ссылаются здесь: https://web-beta.archive.org/web/20160615054103/http://stackoverflow.com/questions/3720563/access-c-shared-library-from-java-jni-jna-cni-or-swig   -  person Dennis Soemers    schedule 07.04.2017


Ответы (2)


Чтобы вызвать собственный (C / C ++) код из Java, вам нужно будет выполнить Маршалинг объектов между собственным миром и Java, JNI justs делает это, и ваш подход мне кажется правильным.

person Alok Save    schedule 09.06.2011

Прямое использование классов C ++ в java возможно только с CNI, что означает, что вам нужно использовать gcj (компилятор gnu для java). В противном случае вам придется самому написать класс-оболочку jni.

person rurouni    schedule 09.06.2011
comment
Неправда - см. Повторяющийся вопрос в комментарии выше. - person Andy Thomas; 09.06.2011