私はCで次のような関数を持っています:
mySource.c:
int trapdoor(unsigned char keywords[][MAX_SIZE], unsigned int *s, int slen, unsigned char *out, int outlen);
ここで、keywords は char 配列の配列 (異なるサイズのキーワードを含む)、s は長さ slen の unsigned int (編集:実際には 128 ビット => slen の値は 4 になります)、out は宛先ポインターです。関数の結果が格納され、長さは outlen です (編集: 256 ビット => outlen の値は 32 です)。
注: これは暗号化関数であるため、データ型を前述の正確なサイズにする必要がありました。
そして、JNI インターフェイスを使用して Java からこの関数を呼び出す必要があります。Cでtrapdoor関数を呼び出すためにパラメータとして渡す必要があるJavaおよびJNIの同等のデータ型は何ですか?
mySource_jni.c:
JNIEXPORT ?? JNICALL Java_proj_trapdoor(JNIEnv *env, jobject obj, ??, ??, ??, ??, ??, ??);
myJavaSource.java:
private native ?? trapdoor_extraction(??, ??, ??, ??, ??);
他の投稿から、Java には署名されていないデータ型に相当するものがないことがわかりました (間違っている場合は修正してください)。