2017-01-16 8 views
0

Могу ли я передать примитив от Java к моей функции C++ с помощью вызовов функций JNI и изменить его значение в функции C++?Как изменить значение примитивных данных, переданных в подпрограмму C++ с использованием Java и JNI?

До сих пор я видел примеры возврата jstring, jint, jboolean и т. Д., Которые я не хочу делать. Другой вариант, о котором я знаю, это получить идентификатор примитивной переменной в C++ и установить ее значение.

Для примера:

JNIEXPORT void JNICALL Java_myFunction 
(JNIEnv *, jobject obj, jboolean retJava) 

Здесь я передаю булево из Java и хотите изменить его в C++ в зависимости от моего вычисления без оператора возврата.

ответ

1

К сожалению, вы можете не сделать это с JNI.

Вы можете взломать его с помощью штучных типов (см примера here), но настоятельно рекомендуются, так как это может нарушить все виды вещей легко (относительно того, что именно, смотрите комментарии в связанном вопросе).

+0

:) Спасибо - Steeve –