JNI 사용하면서 배열 넘겨서 내부에서 데이터 입력하는게 있는데 javah를 쓰면 알아서 적당한 타입으로 바꿔줌.
예를 들어 int[]를 사용하면 jintArray 로 바꿔줌.
인터넷 검색해보니 거의 대부분이 j변수타입Array 명이더군요.
문제는 이거 그냥 쓸수가 없더군요.
사유는 C 에서 배열은 연속된 메모리 배열이지만 자바에서 배열은유저 입장에선 연속된 배열이지만 실제 메모리상에선 그렇지 않다고 하더군요 그래서 사용하기 전에 해줘야 하는게 있습니다.
jintArray inPixels //매개변수로 들어오는것 jint *pInPixels; int size; jboolean isCopy = false; size = env->GetArrayLength(inPixels); pInPixels = env->GetIntArrayElements(inPixels, &isCopy); //배열 사용 int aaa = pInPixels[0]; pInPixels[0] = 2; env->ReleaseIntArrayElements(inPixels, pInPixels, 0);
뭐 이정도 나머진 융통성을 발휘해서
답글 남기기