JNA - вызывающие методы на экземпляр C++ пасуются назад от DLL

Version=1.0.3.0 указывает на Замок RC3, однако быстрый интерфейс был разработан спустя несколько месяцев после выпуска RC3. Поэтому похоже, что у Вас есть проблема управления версиями. Возможно, у Вас есть Замок RC3, зарегистрированный в GAC, и это использует тот...

6
задан William 9 December 2009 в 11:12
поделиться

1 ответ

Для любого произвольного определения type * function () вы можете сопоставить метод, используя JNA, как возвращающий com.sun.jna.Pointer , но вы не сможете вызывать методы объекта C ++ из JNA.

Простым обходным путем для этого было бы написать библиотеку интерфейса C, которая просто вызывает метод для объектов ... так что, если у вас есть функция-член foo () вы можете экспортировать метод C из вашего кода C ++:

extern "C" void bar(type* var){
   var->foo();
}

Очевидно, это добавит вам немного работы ... но я подозреваю, что переход на JNI будет примерно таким же.

2
ответ дан 17 December 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: