Java jni编译cpp和c之间的区别是什么?
测试cJava jni编译cpp和c之间的区别是什么?,java,java-native-interface,Java,Java Native Interface,测试c < C++ > JNI与J.Ni的C.N/P>略有不同。 在普通C中使用:*env->SomeFunctionenv,arg,arg 请注意,必须取消对env的引用,并且函数的第一个参数始终是env 在C++中,它是不同的。您可以使用:env->somefunctorg,arg 您不需要取消对env的引用,也不需要将env作为第一个参数传递 对Java的实际调用将是相同的。java不在乎你使用纯C还是C++来做JNI的东西。 这里介绍了使用C++进行JNI的快速介绍。 #include
< C++ > JNI与J.Ni的C.N/P>略有不同。 在普通C中使用:*env->SomeFunctionenv,arg,arg 请注意,必须取消对env的引用,并且函数的第一个参数始终是env 在C++中,它是不同的。您可以使用:env->somefunctorg,arg 您不需要取消对env的引用,也不需要将env作为第一个参数传递 对Java的实际调用将是相同的。java不在乎你使用纯C还是C++来做JNI的东西。
这里介绍了使用C++进行JNI的快速介绍。
#include <string.h>
#include <jni.h>
#include <android/log.h>
#include <stdio.h>
#include <stdlib.h>
jstring Java_com_test_b_hello_hellostr( JNIEnv* env,jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
.
void (*ReleaseStringChars)(JNIEnv*, jstring, const jchar*);
jstring (*NewStringUTF)(JNIEnv*, const char*);
jsize (*GetStringUTFLength)(JNIEnv*, jstring);
...
jstring NewStringUTF(const char* bytes)
{ return functions->NewStringUTF(this, bytes); }
.....