私は、バイト配列(File..etcを表すバイナリデータ)または文字配列へのポインタのどちらかのunsigned char *を返すC関数を持っています。私は現在、署名されていないcharポインタを返すすべてのC関数をラップするSWIG %array_class
を使用しており、Java側での人口と検索を処理するJava配列ユーティリティ(SampleArrayUtil.java)を作成しています。SWIGでバイト配列データをラップするarray_class
私の問題は、unsigned char *
を使ってラップすることです:%apply char * { unsigned char * };
私はJava側でStringの配列を取得します。私はバイナリデータを取得するときにを使用してunsigned char *
の戻り値をラップしたくないので、Java側でバイト配列を取得したいだけです。私は、バイナリデータを扱うために別のC関数を作成することを考えていましたが、私はそれがまたunsigned char *
(getValueFromRowAsByteArray
を参照)
C関数の戻りますよう、この新しい機能をラップするかどうかはわからないよ:
unsigned char * getValueFromRowAsStringArray(struct result_row *row, attribute_type type, int32_t *len)
unsigned char * getValueFromRowAsByteArray(struct result_row *row, attribute_type type, int32_t *len)
//*row* input param with data results, *type* input enum type for the data type being requested and *len* is an output param that contains the length of the data being returned.
JavaインターフェイスでCタイプの同じタイプから返されるタイプが異なる - タイプマップを選択的に適用したいと思っていますか? (答えを書く前に私たちが同じページをチェックしている) – Flexo
@awoodland - そうです。 – c12