0

我想创建一个函数,它将返回一个静态数组并用 SWIG 包装这个函数,以便能够在 Java 中使用它。

假设我创建了自己的类,并且我有一个 C++ 函数,它看起来像

myClass* myFunction()
{
   // stuff here
}

我想用 SWIG 包装它,以便以这种方式在 Java 中使用它:

myClass[] array = myFunction();

我做了一些研究,但找不到有价值的东西(许多答案说如何创建参数是数组的函数,但没有人说返回的数组)。

感谢您花时间回答我。

4

1 回答 1

0

在研究你的问题的答案时,你让我想起了我以前工作的噩梦:)。

我选择避免这个问题而不是解决它。我会创建一个简单的 C++ 类,比如

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

接着

ArrayAdapter myFunction();

如果您需要将它传递给需要数组或的 Java 函数,请用 JavaCollection编写包装器代码。

我并不认为这是最好的解决方案,但有时编写一些简单且可调试的东西比依赖 SWIG 类型映射魔法更好。

于 2014-03-25T14:43:26.230 回答