我在使用 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* 对象,但不知道如何将其转换为正确的格式。