琢磨了两天还是没的思路1。就是当Java方法的返回值为string类型时,总是出问题,其他返回为int或者boolean等没问题。c++中char*,但在这里返回的时候我以object类型处理, 以(jstring)来强制转换,但是每次返回都是都是空。(????)
2。通过C++对java的方法进行写时,若java方法是两个参数,比如int setNewFlag(int position,boolean bls)。。要传递参数 在C++中的类型怎么设置?
2。通过C++对java的方法进行写时,若java方法是两个参数,比如int setNewFlag(int position,boolean bls)。。要传递参数 在C++中的类型怎么设置?
不过string 肯定是没有问题的
建议你去看一本书
核心技术2
那里的JNI的篇章很不错。2。通过C++对java的方法进行写时,若java方法是两个参数,比如int setNewFlag(int position,boolean bls)。。要传递参数 在C++中的类型怎么设置?查看用JAVAH 生成的.h文件,那里面有函数传递的规则
不需要你自己去记忆
#include <jni.h>
/* Header for class NativeTest */#ifndef _Included_NativeTest
#define _Included_NativeTest
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: NativeTest
* Method: twoFields
* Signature: (ILjava/lang/String;)I 这里就是在C++的参数类型
*/
JNIEXPORT jint JNICALL Java_NativeTest_twoFields
(JNIEnv *, jclass, jint, jstring);#ifdef __cplusplus
}
#endif
#endif
比如你在上篇提到的这个,(ILjava/lang/String;)I
在C中写的时候 callIntMethod(cls,methodid,*******);
第三个参数用什么形式 怎么写进去?
我采用 jobject不行,采用array也不妥 。。埃