私はstd :: stringを返すC++メソッドを持っています。私はSWIGを使用していますが、SWIGにロジックを追加して、std :: stringが返され、Javaでbyte []として受け取られるようにしたいとします。Swig:戻り値の型std :: stringをjava byte []に変換します。
これが可能なら、どうすればよいですか?
おかげ
私はstd :: stringを返すC++メソッドを持っています。私はSWIGを使用していますが、SWIGにロジックを追加して、std :: stringが返され、Javaでbyte []として受け取られるようにしたいとします。Swig:戻り値の型std :: stringをjava byte []に変換します。
これが可能なら、どうすればよいですか?
おかげ
のstd :: stringは、本質的にそれを行うメンバ関数c_strを持っています。関数を呼び出し、対応するC文字列を返すラッパー関数を記述するのはおそらく意味があります。
SWIGには、多くのC++構造体のためのあらかじめ書かれたインターフェイスファイルが付属しています。 SWIGのLibディレクトリには、Javaを含む多くの言語があります。
SWIGインターフェイスファイルに%include <std_string.i>
を追加してください。 SWIGのLib/Javaディレクトリで、他の構文もサポートされているかどうかを確認してください。