写一段将C++ test()函数封装成jni接口并调用的代码
时间: 2024-03-11 14:47:59 浏览: 81
JAVA JNI C++调用示例
好的,以下是一段将C++ test() 函数封装成 JNI 接口并调用的代码:
```c++
#include <jni.h>
// C++ test() 函数定义
int test() {
return 42;
}
// 将 C++ 函数封装成 JNI 接口
JNIEXPORT jint JNICALL Java_com_example_MyClass_test(JNIEnv *env, jobject obj) {
return (jint) test();
}
```
在这段代码中,我们首先定义了一个名为 test() 的 C++ 函数,它返回整数 42 。然后,我们使用 JNI 提供的函数和宏将该函数封装成 JNI 接口。在这个例子中,我们将其命名为 Java_com_example_MyClass_test() ,并将其返回值转换为 jint 类型。
最后,我们可以在 Java 代码中调用此函数,例如:
```java
public class MyClass {
static {
System.loadLibrary("mylib");
}
public static native int test();
public static void main(String[] args) {
int result = test();
System.out.println("Result: " + result);
}
}
```
在这个例子中,我们首先加载名为 "mylib" 的动态链接库(包含我们刚才编写的 JNI 接口)。然后,我们定义了一个名为 test() 的静态 native 方法,该方法调用我们的 JNI 接口。最后,在 main() 方法中,我们调用 test() 方法并打印结果。
阅读全文