如题,用JNI能传arraylist吗?
如果java里写成arraylist,生成的.h文件里的相应参数变成jobject这个jobject能在VC里接到并且转化成VC里的arrayList吗?
如果知道非常谢谢您,送分+感谢
不知道就不用乱回答了。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xiaochongwei】截止到2008-07-22 20:49:24的历史汇总数据(不包括此帖):
    发帖的总数量:5                        发帖的总分数:150                      每贴平均分数:30                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:5                        结贴的总分数:150                      
    无满意结贴数:2                        无满意结贴分:70                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:40.00 %               无满意结分率:46.67 %                  
    敬礼!
      

  2.   

    据我所知直接传比较困难。
    但你可以通过在C++里访问JAVA数组的方式来实现。
      

  3.   

    我的前面回答不是很好,补充一下例子。
    //JAVA中的两变量定义
        public   String[] tagInfo = new String[50]; //标签内容
        public   int tagCount ; //标签数量//C++中的部分程序
    JNIEXPORT jint JNICALL Java_rfid_Reader_multipleTagIdentify(JNIEnv *env, jobject obj, jobjectArray array,jint vHcom)
    {
    ....
    jclass clazz=env->GetObjectClass(obj);
    jfieldID j_tagCount=env->GetFieldID(clazz,"tagCount","I");
    env->SetIntField(obj,j_tagCount,Count);
    //传回tagInfo
    char sx[]="0123456789012345678901234567890123456789";
    for(i=0;i<Count;i++)
    {
    printf("%s",diststr[i]);
    strcpy(sx,diststr[i]); jstring js=(*env).NewStringUTF(s);
    (*env).SetObjectArrayElement(array, i,js);
    //(*env).ReleaseStringUTFChars(diststr[i], s);}
    .....
    }
      

  4.   

    谢谢楼上的,现在我也用数组传的,反正是能用
    但是,我觉得除非c这面有非常非常难实现的东西,或者写好的逻辑性非常强的东西。
    否者用array在两面传来传去真不值得。我现在要出一个emf图片,用java不能用open source实现起来非常难
    于是客户说,用vc做吧,妈了个日,整个曲线图的数据全用数组传过来。
    只传一个string多好呢,只传一个文件的地址,c++这面再去读文件。谢谢楼上,给分