首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JNI中传递参数

如何在JNI中传递参数
EN

Stack Overflow用户
提问于 2015-09-23 11:30:04
回答 1查看 1.5K关注 0票数 1

我有下面的java代码

代码语言:javascript
复制
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文件

代码语言:javascript
复制
 /* 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参数,并且它返回say 0,这样,我将有两个percentage_complete(在out参数中)都有一个返回值。

任何帮助都是非常感谢的,也是非常有帮助的。

注意:我不能为此使用struct :我不能将percentage_complete和返回输出封装在一个结构中并返回该结构)

EN

回答 1

Stack Overflow用户

发布于 2015-09-23 16:09:55

你必须归还两件东西:

  1. 错误指示
  2. 整数值。

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

代码语言:javascript
复制
public native int get_status(String cookies,int percentage_complete);

代码语言:javascript
复制
public native Integer get_status(String cookies);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32738404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档