0

静的配列を返す関数を作成し、この関数を SWIG でラップして Java で使用できるようにしたいと考えています。

独自のクラスを作成し、次のような C++ 関数があるとします。

myClass* myFunction()
{
   // stuff here
}

そして、このように Java で使用できるように SWIG でラップしたいと思います。

myClass[] array = myFunction();

私はいくつかの調査を行いましたが、価値のあるものを見つけることができませんでした(多くの回答は、引数が配列である関数を作成する方法を述べていますが、返される配列については何も述べていません)。

私に答えてくれてありがとう。

4

1 に答える 1

0

あなたの質問への答えを調べている間、あなたは私に前の仕事からの悪夢を思い出させました:)。

この問題を解決するのではなく、回避することにしました。次のような非常に単純な C++ クラスを作成します。

class ArrayAdapter
{
public:
    int size();
    MyClass *getItem(int index);
};

その後

ArrayAdapter myFunction();

配列または を期待する Java 関数にそれを渡す必要がある場合は、JavaCollectionでラッパー コードを記述します。

これが最善の解決策であるとは言いませんが、SWIG の typemap マジックに頼るよりも、単純でデバッグ可能なものを作成した方がよい場合もあります。

于 2014-03-25T14:43:26.230 に答える