C++写的DLL中将自定义的类转换为joject类型。----staMeter.h----
class staMeter{
public:
double dAct;
double dDef;
};
--------unit1.cpp----------
include "staMeter.h"
JNIEXPORT jobject JNICALL Java_testdll_ReadDataRM
(JNIEnv *jenv, jobject jobj, jint hd){
staMeter pstaMeter;
pstaMeter.dAct=88888.88;
pstaMeter.dDef=99999.99;
return pstaMeter;
}
编译报错啊:
error: E2034 Cannot convert 'staMeter' to '_jobject*'
class staMeter{
public:
double dAct;
double dDef;
};
--------unit1.cpp----------
include "staMeter.h"
JNIEXPORT jobject JNICALL Java_testdll_ReadDataRM
(JNIEnv *jenv, jobject jobj, jint hd){
staMeter pstaMeter;
pstaMeter.dAct=88888.88;
pstaMeter.dDef=99999.99;
return pstaMeter;
}
编译报错啊:
error: E2034 Cannot convert 'staMeter' to '_jobject*'
其中就有必要将其类型转换。如返回int类型,这里就是返回jint类型。
JNIEXPORT jobject JNICALL Java_testdll_ReadDataRM
(JNIEnv *jenv, jobject jobj, jint hd)本函数要求返回jobject,在C++中我是返回staMeter就行了,但现在要给java调用,
因此就需要转换成jobject类型。有谁知道??????
我也是刚接触jni,和楼主一起研究。