如何使用SWIG从c++返回Java数组?
How can I return Java arrays from C++ using SWIG?
我想创建一个函数,它将返回一个静态数组,并使用SWIG包装这个函数,以便能够在Java中使用它。
假设我创建了自己的类,并且我有一个c++函数,看起来像
myClass* myFunction()
{
// stuff here
}
我想用SWIG包装它,以便在Java中以这种方式使用它:
myClass[] array = myFunction();
我做了一些研究,但找不到有价值的东西(许多答案说如何创建函数的参数是数组,但没有说数组返回)。
感谢您抽出时间来回答我的问题。
你让我想起了我在研究你的问题的答案时做的噩梦:)。
我选择避免这个问题而不是解决它。我会创建一个非常简单的c++类,比如
class ArrayAdapter
{
public:
int size();
MyClass *getItem(int index);
};
和
ArrayAdapter myFunction();
如果您需要将其传递给期望数组或Collection
的Java函数,请使用Java编写包装器代码。
我并不是说这是最好的解决方案,但是有时候写一些简单的可调试的东西比依赖SWIG的typemap魔法要好。
相关文章:
- 如何从保存在 Java 中C++的字节数组中读取数字?
- 如何将字符串数组返回到 java JNI
- 在C++中返回基元类型数组(Java比较)
- 如何在本机 c++ jni 中实现 java 类型数组
- JNI 如何将 Java 对象数组传递给相同对象类型的 C++ 数组
- 声明数组>> int arr[] 时出错;在C++(虽然在 Java 中有效)?
- 无法从JNI设置Java Int数组字段
- 如何将字符串数组从C++返回到Java(JNI)
- 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java
- 如何修复将传输到 java 的 2d 数组代码使用 JNI
- JNI:将整数数组从Java传递到C
- 将简单的 Java 数组传递给原始的 C 数组 SWIG
- C++ Java 数组转换
- JNI 缓存 Java 数组
- 通过 JNI 从 c++ 获取 java 数组
- C++向量,Java数组等效
- c++和Java数组声明/定义:差异
- 是否有任何方法可以通过JNI直接指向Java数组
- Java数组列表转换为c++
- 如何使用SWIG从c++返回Java数组?