0

我在java中有一个这样的包装函数:

dosomething(SWIGTYPE_sometypeSTRUCT STRUCTtype);

最初在 C 代码中,声明看起来是这样的:

dosomething(sometypeSTRUCT* structtype);

如何将 SWIGTYPE 传递给 java 函数。如果我这样做: SWIGTYPE_sometypeSTRUCT something = new SWIGTYPE_sometypeSTRUCT ();

它不起作用..只有当我设置 somthing = null 时它才会起作用。

4

1 回答 1

1

问题是 SWIG 还没有看到- 只要它知道您的函数采用的指针是不透明类型的定义。sometypeSTRUCTdosomething

当 SWIG 不知道细节时,它无法有意义地包装它,唯一安全的做法是让您使用这种类型在 C 中执行您可以执行的操作。

要解决此问题,您可能希望使用%include引入结构的定义,或者可能在 SWIG 接口文件中提供定义。

于 2012-10-12T20:45:29.997 回答