ByteBuffer
をバッファから読み書きするネイティブ関数に渡す必要があります。これらの操作が完了したら、通常の機能を使用してJavaコードからByteBuffer
にアクセスしたいと思います。特に、limit()
とposition()
は、バッファの現在の状態を反映する必要があります。JNIからByteBufferを操作する
JNIは直接根底にあるバッファにアクセスするためにGetDirectBufferAddress()
を使用しますので、私は私が書き込み/読み出し行っていた後、私はflip()
/limit()
/position()
を呼び出す必要がありますと仮定しています。しかし、私はこの仕事をすることができませんでした。例えば、私はCからバッファに数バイトを読み込んだ後、その限界と位置を設定した後、Javaからそれらのバイトを照会することはできません。バッファの制限と位置に関するJavaの考えは、私がCコードで行ったこととは一致しません。
誰でも私にこの実例を指摘できますか?前もって感謝します。
これはすべてのアイデアです。あなたが設定しているポジションとリミットの値はどのようなものですか、それらの値はJavaで見ていますか? – EJP