【发布时间】:2025-12-20 03:10:11
【问题描述】:
我有下面的 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,我希望将 percent_complete 作为 out 参数并返回 0,这样我将同时返回 percent_complete(因为它在 out 参数中)一个返回值。
任何帮助都将受到高度赞赏,并且会非常有帮助
注意:我不能为此使用结构,即:我不能将百分比完成和返回输出都封装在结构中并返回该结构)
【问题讨论】:
-
Java 中没有“out”参数,因此 JNI 本地方法中也没有。
标签: java c++ c java-native-interface