请教一个JNI问题;请高手帮忙用java 调用 dll 里的API ;我需要有返回值;不知道怎么得到
看了有关文档 好象 是必须用 类(实例) ;大家给个代码看看;  有Delphi最好; C也可以 ;先谢了

解决方案 »

  1.   

    按说你通过java提供的工具变异出来的.h已经为你声明好了函数了啊,不需要自己再手工写函数声明吧。// 获得Agent上的全部应用的列表。
    JNIEXPORT jstring JNICALL Java_com_ubi_patrolapi_PatrolAPI_getPatrolAppList
      (JNIEnv *jEnv, jobject jObj)
    {
    char *appList; appList = PemnBGetApplList(hComm, USE_DEFAULT_TIMEOUT);
    return (*jEnv)->NewStringUTF(jEnv, appList);
    }
      

  2.   

    JAVA  版的高手太少了;或者说热心的人太少了
      

  3.   

    建议,先用Googel来搜索你的问题,实在找不到再来这里问,
      

  4.   

    使用jobject;或者jobjectArray
    这个都能传递多个参数回来。
    你可以在声明java函数的时候,返回值声明成可以返回多个的就可以了
    比如:
        public native List getNameList(String name);
        public native String getName(String name);
        public native String[] getNameArray(String name);
    这样用javah编译后
    /*
     * Class:     TestJavaH
     * Method:    getNameList
     * Signature: (Ljava/lang/String;)Ljava/util/List;
     */
    JNIEXPORT jobject JNICALL Java_TestJavaH_getNameList
      (JNIEnv *, jobject, jstring);/*
     * Class:     TestJavaH
     * Method:    getName
     * Signature: (Ljava/lang/String;)Ljava/lang/String;
     */
    JNIEXPORT jstring JNICALL Java_TestJavaH_getName
      (JNIEnv *, jobject, jstring);/*
     * Class:     TestJavaH
     * Method:    getNameArray
     * Signature: (Ljava/lang/String;)[Ljava/lang/String;
     */
    JNIEXPORT jobjectArray JNICALL Java_TestJavaH_getNameArray
      (JNIEnv *, jobject, jstring);这样在实现,就能够返回多个参数了吧
      

  5.   

    不是很清楚,这里有些JNI的文章,楼主看看:http://www.graphics.net.cn/article/java/java_jni_vc6.asphttp://www.graphics.net.cn/article/java/java_jni_string.asphttp://www.graphics.net.cn/article/java/java_jni_skill.asphttp://www.graphics.net.cn/article/java/java_jni_skill_2.asphttp://www.graphics.net.cn/article/java/java_jni.asp
      

  6.   

    jackkui说得已经比较详细了,支持.