相关疑难解决方法(0)

JNI在C和C++中调用不同的东西?

所以我在C中使用以下代码利用Java Native Interface但是我想将其转换为C++,但我不确定如何.

 #include <jni.h>
 #include <stdio.h>
 #include "InstanceMethodCall.h"

 JNIEXPORT void JNICALL 
 Java_InstanceMethodCall_nativeMethod(JNIEnv *env, jobject obj)
 {
     jclass cls = (*env)->GetObjectClass(env, obj);
     jmethodID mid = (*env)->GetMethodID(env, cls, "callback", "()V");
     if (mid == NULL) {
         return; /* method not found */
     }
     printf("In C\n");
     (*env)->CallVoidMethod(env, obj, mid);
 }
Run Code Online (Sandbox Code Playgroud)

Java程序:

 class InstanceMethodCall {
     private native void nativeMethod();
     private void callback() {
         System.out.println("In Java");
     }
     public static void main(String args[]) {
         InstanceMethodCall c = new InstanceMethodCall();
         c.nativeMethod();
     }
     static {
         System.loadLibrary("InstanceMethodCall");
     }
 } …
Run Code Online (Sandbox Code Playgroud)

c c++ java java-native-interface

31
推荐指数
3
解决办法
1万
查看次数

标签 统计

c ×1

c++ ×1

java ×1

java-native-interface ×1