21

私は方法を持っています:

public native void doSomething(ByteBuffer in, ByteBuffer out);

このメソッドのjavahC/C++ヘッダーによって生成されます。

JNIEXPORT void JNICALL Java__MyClass_doSomething (JNIEnv *, jobject, jobject, jobject, jint, jint);

jobject(つまりByteBufferインスタンス)からデータ配列を取得するにはどうすればよいですか?

4

1 に答える 1

33

ByteBuffer.allocateDirect() を使用して ByteBuffer を割り当てたと仮定すると、GetDirectBufferAddressを使用できます

jbyte* bbuf_in;  jbyte* bbuf_out;

bbuf_in = (*env)->GetDirectBufferAddress(env, buf1);  
bbuf_out= (*env)->GetDirectBufferAddress(env, buf2); 
于 2010-04-20T09:27:26.203 に答える