Android プロジェクトで助けが必要です。Java から jni にバッファーを渡したいのですが、私の C++ コードはデータを取り込みます。次に、Javaはそれらを画面に表示します。私は C++ にあまり詳しくなく、バッファに書き込む方法がわかりません。
これは私が得たものです。Javaで
ByteBuffer bb = ByteBuffer.allocateDirect(216);
IssmJni.processBuffer(bb);
ネイティブメソッド
public static native void processBuffer(ByteBuffer bb);
jni_onload を使用しないため、C++ に javah はありません
static void fillBuffer(JNIEnv *env, jclass clazz, jobject buf)
{
double *dBuf = env->GetDirectBufferAddress(env, buf);
}
ここで立ち往生しています。ダブルdbuf を実行できますか? それともcharでなければなりませんか?
この dbuf に 1,2,3,4,5 を書きたいとしましょう。私は dbuf.put(1); を考えています。... dbuf.put(5) ですが、動作していません。それを入力した後、Javaでbb.get(position)を呼び出すだけですか?
誰かが私のためにこれを明確にしてください、例をいただければ幸いですありがとう
これは私のネイティブメソッドの表です
static JNINativeMethod method_table[] = {
{"fac" , "(J)J" , (void *) factorial},
{"getBuffer", "()[D" , (void *) getBufferNative},
//{"processBuffer", "(Ljava/nio/ByteBuffer)V", (void *) fillBuffer}};
残りの 2 つは、最後の 1 つを除いて正常に動作します。