JNI の操作に問題があり、かなり長い間この問題に悩まされています。私はこれについて以前に投稿しましたが、回答を受け取ったことはなく、時々多くの調査を行いました.
私の JNI 署名:
JNIEXPORT void JNICALL Java_MyApplet_invokeManager(JNIEnv *jniEnvPtr, jobject javaObj, jbyteArray encodedData)
私のコードの一部:
boolean isCopy;
jbyte* bytes = jniEnvPtr->GetByteArrayElements(encodedData, &isCopy);
jniEnvPtr->ReleaseByteArrayElements(encodedData, bytes, JNI_ABORT);
myManager->ShowQueue(encodedData);
エラーメッセージ:
error C2664: 'MyModule::JniToManaged::ShowFormQueue' : cannot convert parameter 2 from 'jbyte *' to 'cli::array<Type,dimension> ^'
これを渡す必要がある C# byte[] に変換する方法が見つかりませんでした。jbyte* オブジェクトのキャストについて聞いたことがありますが、それを正しい形式に変換する方法がわかりません。