jbyteArrayをjniのネイティブC文字列(char *)に変換しようとしていますか?残念ながら、私はどのようにそれを行うためのドキュメントを見つけることができません。私は、Cコードで次のプロトタイプを使ってjava関数を呼び出しています。jbyteArrayをjniのネイティブchar *に変換するには?
public static byte[] processFile(byte[] p_fileContent)
私はバイト配列を返すこの関数を呼び出しています。このバイト配列の内容はJava文字列です。しかし、私はそれをCの文字列に変換する必要があります。
jbyteArray arr = (jbyteArray) env->CallObjectMethod(clsH, midMain, jb);
printf("%s\n", (char*) arr);
リンクが壊れています。更新してください。 –
@DRH 1.4.2リンクを1.5リンクに更新することはあまり改善されません。 – EJP
注意深くnullを終了します。一般に、ファイルの内容はnullで終了しません。 C(++)の文字列関数は、それを抑制する可能性があります。確実に回避するには、ファイルバイトをバッファに1バイト大きくコピーし、最後のバイトをゼロに設定する必要があります –