首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++调用java方法的有关问题

2013-02-27 
求助:c++调用java方法的问题若java类中有public int[] countspublic int[] getcounts(){return this.coun

求助:c++调用java方法的问题
若java类中有
public int[] counts;
public int[] getcounts()
{
    return this.counts;
}
在c++中调用这个方法时该怎么办?

若是int,string类型的返回值 ,有CallIntMethod(),CallStringmMethod()与之对应,
那么数组类型应该怎么调用。
[解决办法]
long        arrayCpp[] = {1,3,5,7,9};  
jintArray array = env->NewIntArray(5);  
env->SetIntArrayRegion(array, 0, 5, arrayCpp);  
//传入数组  
jclass cls = env->FindClass("test/Demo");  
jobject obj = env->AllocObject(cls);  
jmethodID mid = env->GetMethodID(cls,"setCounts","([I)V");  
env->CallVoidMethod(obj, mid, array);  
//获取数组  
mid = env->GetMethodID(cls,"getCounts","()[I");  
jintArray msg = (jintArray)env->CallObjectMethod(obj, mid, array);  
int len =env->GetArrayLength(msg);  
jint* elems =env-> GetIntArrayElements(msg, 0);  
for(int i=0; i< len; i++)  
{  
    cout<<"ELEMENT "<<i<<" IS "<<elems[i]<<endl;  
}  
env->ReleaseIntArrayElements(msg, elems, 0);  

热点排行