JNI jbyteArray转char*

Posted 莱纳·龙特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JNI jbyteArray转char*相关的知识,希望对你有一定的参考价值。

JNI jbyteArray转char*

char* ConvertJByteaArrayToChars(JNIEnv *env, jbyteArray bytearray)
{
  char *chars = NULL;
  jbyte *bytes;
  bytes = env->GetByteArrayElements(bytearray, 0);
  int chars_len = env->GetArrayLength(bytearray);
  chars = new char[chars_len + 1];
  memset(chars,0,chars_len + 1);
  memcpy(chars, bytes, chars_len);
  chars[chars_len] = 0;

  env->ReleaseByteArrayElements(bytearray, bytes, 0);

  return chars;
}

调用:

{

  char *pmsg = ConvertJByteaArrayToChars(env,jmsgversion);
  ...
  delete pmsg;

}

以上是关于JNI jbyteArray转char*的主要内容,如果未能解决你的问题,请参考以下文章

C ++中的JNI将文件读取到jbyteArray

如何在JNI中比较两个jbyteArray?

Android JNI:将cv :: Mat转换为jbyteArray

(转)JNI参数传递|Surface

某些数组和字符串类型转换(转)

Java:扩展后的赋值运算符(带强转功能)