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;

}

时间: 2024-10-28 11:29:40

JNI jbyteArray转char*的相关文章

【转】 Android 开发 之 JNI入门 - NDK从入门到精通

原文网址:http://blog.csdn.net/shulianghan/article/details/18964835 NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C语言实例程序 : GitHub - https://github.com/han1202012/NDKParameterPassing.git --C语言回调Java方法示例

Java Programming Tutorial Java Native Interface (JNI)

1.  Introduction At times, it is necessary to use native codes (C/C++) to overcome the memory management and performance constraints in Java. Java supports native codes via the Java Native Interface (JNI). JNI is difficult, as it involves two languag

JNI 实战全面解析

简介 项目决定移植一款C++开源项目到Android平台,开始对JNI深入研究. JNI是什么? JNI(Java Native Interface)意为JAVA本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,一种在Java虚拟机控制下执行代码的标准机制. NDK是什么? Android NDK(Native Development Kit )是一套工具集合,允许你用像C/C++语言那样实现应用程序的一部分. 为什么要用NDK? 1.安全性,java是半解释型语言,很容易被反汇

android jni 总复习(转载)

本文全文转载自:http://www.cnblogs.com/shuqingstudy/p/4909089.html,非常感谢 1 package com.test.androidjni; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.widget.TextView; 7 8 9 public class MainActivity e

JNI由浅入深_10_JNI 综合开发

1.使用ndk-build时如果找不到某个类,可以使用下面两种方法解决: 1.1 进入src目录 D:\project3\JNIAndroid\src>set classpath=D:\project3\JNIAndroid\src 1.2 设置classpath classpath    .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar;E:\developLib\android\platforms\android-8\android.jar 2.基

jni类型转换

jbytearray转c++byte数组 C代码   jbyte * arrayBody = env->GetByteArrayElements(data,0); jsize theArrayLengthJ = env->GetArrayLength(data); BYTE * starter = (BYTE *)arrayBody; jbyteArray 转 c++中的BYTE[] C代码   //jbytearray strIn jbyte * olddata = (jbyte*)env-

JNI Tutorial

原文链接: https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html 1.  Introduction At times, it is necessary to use native codes (C/C++) to overcome the memory management and performance constraints in Java. Java supports native cod

jni入门

NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C语言实例程序 : GitHub - https://github.com/han1202012/NDKParameterPassing.git --C语言回调Java方法示例程序 : GitHub - https://github.com/han1202012/NDK_Callback.git --

JNI的某些数组和字符串类型转换

JNICC++C#Windows jbytearray转c++byte数组 C代码   [c] view plaincopy jbyte * arrayBody = env->GetByteArrayElements(data,0); jsize theArrayLengthJ = env->GetArrayLength(data); BYTE * starter = (BYTE *)arrayBody;jbyteArray 转 c++中的BYTE[] C代码   [c] view plain