これは簡単な問題だと思っていましたが、回答を見つけるのが難しかったです。SWIG - Java Proxy Class Arrayパラメータ
私はC++で定義された構造体を持っている、のは言わせて:
struct MyStruct
{
int a;
int b;
};
これはSWIGでJavaプロキシクラスMyStruct
に包まれます。私はCで機能を有する++ struct MyStruct
の配列をとる:
void myFunction(struct MyStruct arg[], int amount);
SWIGはポインタパラメータを見て、したがって、そのパラメータとして単一MyStruct
オブジェクトを使用する機能のJavaラッパーを生成する:
void myFunction(MyStruct arg, int amount) { /**/ }
SWIGにMyStruct
Javaオブジェクトの配列を取るJava関数を生成させるにはどうすればよいですか?私はプリミティブ型の配列のためにそれを理解することができましたが、それをカスタムラップ型のために働かせる方法を見つけていません。
だから私の希望のJava関数のシグネチャは、このようになります:
void myFunction(MyStruct[] arg, int amount);
編集:プロキシクラスの適切なSWIGの命名法を使用するように更新文言。
これは実際に可変機能ですか? – Flexo
@Flexoいいえ、申し訳ありませんが、私の構文がどのように混乱するか考えなかった:P私の答えを編集して明確にしました。 –
あなたのC++は配列の長さをどのように知っていますか?それは修正されていますか?または魔法の最終値?または省略された引数の1つ? (私が得意とするのは、実際には動作しますが、最小限の例では、必要なものを正確に理解することが容易になるということです) – Flexo