Как преобразовать буфер без знака в массив jbyteArray? Мне нужно получить буфер C ++ и вернуться в Java через JNI.
Это мой текущий код для этого.
JNIEXPORT jbyteArray JNICALL Java_com_rmsdk_wrapper_RMServices_getImageBuffer(JNIEnv *env, jobject thiso,
jint w, jint h) {
emh::PNGSurface * surface = services->getImageBuffer(w,h);
jbyteArray * buffer = (jbyteArray*)malloc(sizeof(jbyteArray)*surface->getBufferSize());
unsigned char * imgBuff = surface->getBuffer();
for(int i = 0; i < surface->getBufferSize();i++){
buffer = imgBuff;
buffer++;
imgBuff++;
}
return *buffer;
};
При компиляции я получил следующую ошибку.
Compile++ thumb : rmsdk <= RMSDK_Wrapper_JNI.cpp
/home/marcos/dev/workspace/rmsdk.native.wraper/jni/RMSDK_Wrapper_JNI.cpp: In function '_jbyteArray* Java_com_rmsdk_wrapper_RMServices_getImageBuffer(JNIEnv*, _jobject*, jint, jint)':
/home/marcos/dev/workspace/rmsdk.native.wraper/jni/RMSDK_Wrapper_JNI.cpp:37: error: cannot convert 'unsigned char*' to '_jbyteArray**' in assignment
make: *** [/home/marcos/dev/workspace/rmsdk.native.wraper/obj/local/armeabi/objs/rmsdk/RMSDK_Wrapper_JNI.o] Error 1
Ty.