我有一个c文件myCppTest.cpp,它有方法
int myFunction(int argv, char **argc) {
}
和
myClass.java中的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”传递给“int argv,char ** argc”,谢谢.
编辑:我认为我犯了一个错误
myClass.java中的Java本机方法应该是
public native int init (int argv, char[][] argc);
所以有
JNIEXPORT jint JNICALL Java_myClass_init
(JNIEnv *, jobject, jint, jobjectArray);
在javah之后生成.
在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
}