JNI: От кода C к Java и JNI

Предпосылки

Я разрабатываю приложение для Android в eclipse, и теперь у меня возникла проблема, и мне нужна ваша помощь. Поэтому я должен вызвать функцию, написанную на C из приложения JAVA. Но пока я пишу код, у меня возникает несколько вопросов , которые вы можете увидеть ниже. Жду ваших ответов и идей ...

Код C:

typdef struct blobData_s {
    unsigned long length;
    unsigned char data[1];
} blobData_t;

unsigned int CheckEnrollmentExist ( unsigned long hdevice, blobData_t* pInputInfo ) {
    // Function code goes here
    ..........................
    return some_value;
}

Код JAVA:

В коде JAVA вместо unsigned long я использую int , поэтому я могу писать.

class jblobData_c {
    public int langth;
    *Question 1.*
}

public class ApplicationMainClass extends Activity {
    // Some code goes here
    ......................

    public native int JCheckEnrollmentExist( int jhdevive, *Question 2.* );

}

Вопрос 1.

  • Что я могу использовать вместо unsigned char в коде JAVA?
  • Что я должен написать в коде JAVA вместо unsigned char data [1]; ?

Вопрос 2.

  • Как я могу использовать класс jblobData_c вместо blobData_t * pInputInfo в коде JAVA?
  • Что я должен написать в JAVA вместо из blobData_t * pInputInfo ?

Код JNI:

JNIEXPORT jint JNICALL Java_com_Test_JCheckEnrollmentExist(JNIEnv* env, jobject obj, jint jhdevice, *Question 2.* ) {

    // Call the base function from C code.
    return CheckEnrollmentExist( jhdevice, *Question 3.*);
}

Вопрос 3.

  • Что я должен написать в функции CheckEnrollmentExist , то есть функции кода C вместо blobData_t * pInputInfo , чтобы эта функция работала правильно и заданные параметры были одинаковыми

Ссылка

  1. Как передавать структуры C туда и обратно в код Java в JNI?
  2. Эффективная передача большой структуры C через JNI
  3. Возврат объекта структуры из C в Java через JNI
  4. Передача данных между Java и C
  5. Передача указателя из JNI в Java с использованием длинных
  6. Указателей передачи между n C и Java через JNI
11
задан Community 23 May 2017 в 12:34
поделиться