JNI передает параметры методу c ++

У меня есть файл c ++ myCppTest.cpp с методом

int myFunction(int argv, char **argc) {
}

и собственный метод Java в myClass.java

public native int myFunction (int argv, char[][] argc);

После генерации файла заголовка с помощью javah -jni myClass у меня есть заголовок

JNIEXPORT jint JNICALL Java_JPTokenizer_init
  (JNIEnv *, jobject, jint, jobjectArray);

В моем myClass.cpp я определил

JNIEXPORT jint JNICALL Java_JPTokenizer_init
  (JNIEnv *env, jobject obj, jint argv, jobjectArray argc) {
        //need to call int myFunction(int argv, char **argc) in myCppTest.cpp 
}

Как мне передать аргументы "jint argv, jobjectArray argc "to" int argv, char ** argc ", спасибо.

РЕДАКТИРОВАТЬ:

Я ДУМАЮ, ЧТО СДЕЛАЛ ОШИБКУ

Собственный метод Java в myClass.java должен иметь вид

public native int init (int argv, char[][] argc);

. Таким образом, после javah создается

JNIEXPORT jint JNICALL Java_myClass_init
  (JNIEnv *, jobject, jint, jobjectArray);

. И в myClass.cpp у меня есть

JNIEXPORT jint JNICALL Java_myClass_init
  (JNIEnv *env, jobject obj, jint argv, jobjectArray argc) {
        //need to call int myFunction(int argv, char **argc) in myCppTest.cpp 
}

8
задан user200340 11 July 2011 в 16:24
поделиться