有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在JNI中传递参数

我有下面的java代码

public class JNIWrapper {

static{




    System.loadLibrary("JNIDemo");
}

public native String get_error_string(int error_code);
public native int  start(Param_s params);
public native int cancel(String cookies);
public native int get_file_name(String cookies,String fileName);

public native int get_status(String cookies,int percentage_complete);

} 下面是我的简历。H文件

 /* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class demo_JNIWrapper */

#ifndef _Included_demo_JNIWrapper
#define _Included_demo_JNIWrapper
#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT jstring JNICALL Java_demo_JNIWrapper_get_1error_1string
  (JNIEnv *, jobject, jint);


JNIEXPORT jint JNICALL Java_demo_JNIWrapper_1start
  (JNIEnv *, jobject, jobject);


JNIEXPORT jint JNICALL Java_demo_JNIWrapper_cancel
  (JNIEnv *, jobject, jstring);


JNIEXPORT jint JNICALL Java_demo_JNIWrapper_getfile_1name
  (JNIEnv *, jobject, jstring, jstring);


JNIEXPORT jint JNICALL Java_demo_JNIWrapper_get_1status
  (JNIEnv *, jobject, jstring, jint);

#ifdef __cplusplus
}
#endif
#endif

在假设get_status的情况下,我希望将percentage_complete作为out参数,并返回0,这样我将返回percentage_complete(作为in-out参数)和一个返回值

任何帮助都将受到高度赞赏,并将非常有帮助

注意:我不能将struct用于此ie:我不能将完成百分比和返回输出封装在struct中并返回该struct)


共 (1) 个答案

  1. # 1 楼答案

    你必须归还两样东西:

    1. 错误指示
    2. 整数值

    成功时返回Integer对象,失败时返回null。改变

    public native int get_status(String cookies,int percentage_complete);
    

    public native Integer get_status(String cookies);
    

    这将更改生成的头文件,您必须对C代码进行相应的更改