jbyteArray转c++byte数组

转载 2011年01月11日 18:03:00

原作者写的很详细,

收藏了

请谅解

 

 jbyteArray转c++byte数组

 

jbyte * arrayBody = env->GetByteArrayElements(data,0);

jsize theArrayLengthJ = env->GetArrayLength(data);

BYTE * starter = (BYTE *)arrayBody;

jbyteArray 转 c++中的BYTE[]

//jbytearray strIn

jbyte * olddata = (jbyte*)env->GetByteArrayElements(strIn, 0);

jsize  oldsize = env->GetArrayLength(strIn);

BYTE* bytearr = (BYTE*)olddata;

int len = (int)oldsize;

C++中的BYTE[]转jbyteArray

//nOutSize是BYTE数组的长度 BYTE pData[]

jbyte *by = (jbyte*)pData;

jbyteArray jarray = env->NewByteArray(nOutSize);

env->SetByteArrayRegin(jarray, 0, nOutSize, by);

jbyteArray 转 char *

char* data = (char*)env->GetByteArrayElements(strIn, 0);

char* 转jstring

jstring WindowsTojstring(JNIEnv* env, char* str_tmp)
{
 jstring rtn=0;
 int slen = (int)strlen(str_tmp);
 unsigned short* buffer=0;
 
 if(slen == 0)
 {
  rtn = env->NewStringUTF(str_tmp);
 }
 else
 {
  int length = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)str_tmp, slen, NULL, 0);
  buffer = (unsigned short*)malloc(length*2+1);
  if(MultiByteToWideChar(CP_ACP, 0, (LPCSTR)str_tmp, slen, (LPWSTR)buffer, length) > 0)
  {
   rtn = env->NewString((jchar*)buffer, length);
  }
 }
 if(buffer)
 {
  free(buffer);
 }
 return rtn;
}

下面这个没有用过,刚看到,也写进来,以后如果遇到可以验证下看。

jstring 转 char* 或者 const char*

// jstring str

const char *key = env->GetStringUTFChars(str, 0);

//jboolean isOffer

jsClient->modify(key, isOffer);

env->ReleaseStringUTFChars(str, key);


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuanpolo/archive/2010/05/17/5601998.aspx

jbytearray转c++byte数组

jbytearray转c++byte数组jbyte * arrayBody = env->GetByteArrayElements(data,0); jsize theArrayLengthJ = ...
  • Mirage520
  • Mirage520
  • 2015年11月17日 20:35
  • 429

jbytearray转c++byte数组(转)

转自:http://blog.csdn.net/yuanpolo/archive/2010/05/17/5601998.aspxjbyte * arrayBody = env->GetByteArra...
  • wangchenggggdn
  • wangchenggggdn
  • 2011年03月22日 12:25
  • 2494

c++中获取jbyteArray 的长度并转为char *

char * 风格最后有一个 \0,因此必须考虑到。 ================== 参考 http://www.cnblogs.com/lxbblogs/p/3337128.htm...
  • commshare
  • commshare
  • 2014年03月28日 14:26
  • 5410

Android JNI JByteArray传递byte数组到Java

1:C语言char转JNI 中jByteArray 给Java使用 int setjArraybyte(JNIEnv *env,jclass cls,jmethodID mid,char* pat)...
  • zhizhuodewo6
  • zhizhuodewo6
  • 2017年07月07日 09:34
  • 649

byte数组转char数组

方法一: void bytes_to_hexstr(char* dest, unsigned char* src) {  char buffer[3]; for (int i = 0; i ...
  • zxxSsdsd
  • zxxSsdsd
  • 2013年08月19日 23:37
  • 1957

android jni 将BYTE* 和 jbyteArray 之间的转换

 今天,简单讲讲如何在jni中将  BYTE* 转成 jbyteArray。 这个是我在做jni时碰到的问题。因为c传回的值是BYTE*,而返回给java代码是byte[]...
  • bzlj2912009596
  • bzlj2912009596
  • 2017年12月21日 08:50
  • 66

NDK 编程:java中的jstring, 转化为c的一个字符数组

#include #include // java中的jstring, 转化为c的一个字符数组 char* Jstring2CStr(JNIEnv* env, jstring jstr)...
  • hbzh2008
  • hbzh2008
  • 2012年03月19日 15:31
  • 2038

java jni jbyteArray传参给c++

unsigned char* myobfuscate(unsigned char *s) { unsigned char key, mod, len; int i; unsig...
  • earbao
  • earbao
  • 2016年05月19日 19:43
  • 2229

jcharArray转化为char [ ]

jcharArray str 转化为char bufjchar* array = (*env)->GetCharArrayElements(env,str, NULL);uint32_t arrays...
  • gnimey
  • gnimey
  • 2017年11月01日 20:33
  • 223

JNI byteArray 传递与返回

JNIEXPORTjbyteArray JNICALL Java_com_example_hellojni_AES_AES_1Encrypt   (JNIEnv *env, jobject jo, ...
  • qq5132834
  • qq5132834
  • 2013年05月04日 14:48
  • 8450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: jbyteArray转c++byte数组
举报原因:
原因补充:

(最多只允许输入30个字)