android jni 将BYTE* 和 jbyteArray 之间的转换
生活随笔
收集整理的這篇文章主要介紹了
android jni 将BYTE* 和 jbyteArray 之间的转换
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天,簡單講講如何在jni中將
今天,簡單講講如何在jni中將
BYTE* 轉成 jbyteArray。
這個是我在做jni時碰到的問題。因為c傳回的值是BYTE*,而返回給java代碼是byte[],對應的jni的數(shù)據(jù)必須是jbyteArray,所以需要轉換。在網(wǎng)上搜索了資料,終于是解決了這個問題。
C++中的BYTE[]轉jbyteArray//nOutSize是BYTE數(shù)組的長度 BYTE pData[]jbyte *by = (jbyte*)pData;jbyteArray jarray = env->NewByteArray(nOutSize);env->SetByteArrayRegin(jarray, 0, nOutSize, by);
這個將C++中的BYTE[]轉jbyteArray主要是先用jbyte *強制jbyteArray,然后調用SetByteArrayRegin將jbyte *的數(shù)據(jù)拷貝到新建的jbyteArray、
這個將jbyteArray 轉 c++中的BYTE[]主要是獲取jbytearray 數(shù)據(jù)后直接強制為BYTE*。
android jni 將BYTE* 和 jbyteArray 之間的轉換就講完了。
就這么簡單。
總結
以上是生活随笔為你收集整理的android jni 将BYTE* 和 jbyteArray 之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android Set的遍历
- 下一篇: android 进制转换