JNI知识(三)Java调用C++/C函数之Java参数类型是String

前面提到JNI主要是可以完成Java调用C++/C函数,C++/C也可以调用Java方法。先看Java调用C++/C函数。

下面先看java接口参数是String类型(入参)

example:

Java interface  

      public void setName(String name);

 JNI file:

JNIEXPORT void JNICALL Java_setName_ 1native (JNIEnv *env, jclass thiz, jstring name)

 {      

                const char* str;

                jboolean isCopye = false;

            /* 把传进来的jstring类型转为utf-8类型,JNI中只识 别编码方式是UTF-8的 */

              str = env->GetStringUTFChars(name, &isCopye);

       …….

   /* 注意使用完了最好JVM释放转换成UTF-8的  string的对象的空间,如果不显示的调用的话,JVM中会一直保存 该对象,不会被垃圾回收器回收,可能就会导致内存溢出。 */

env->ReleaseStringUTFChars(name, str);


}


本文出自 “肉肉之家” 博客,请务必保留此出处http://4895268.blog.51cto.com/4885268/1368156

JNI知识(三)Java调用C++/C函数之Java参数类型是String,布布扣,bubuko.com

JNI知识(三)Java调用C++/C函数之Java参数类型是String

上一篇:(转)C语言中scanf函数与空格回车


下一篇:C++的学习资源