如何在值为SWIGTYPE时将值传递给函数

时间:2012-10-12 09:53:06

标签: swig

我在java中有一个包装函数,如下所示:

dosomething(SWIGTYPE_sometypeSTRUCT STRUCTtype);

最初在C代码中,声明看起来如此:

dosomething(sometypeSTRUCT* structtype);

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

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

1 个答案:

答案 0 :(得分:1)

问题是SWIG没有看到sometypeSTRUCT定义 - 只要知道你的dosomething函数所采用的指针是不透明的类型。

当SWIG不知道细节时,它无法有意义地包装它,唯一安全的做法就是让你用C这样的类型做你能做的事情。

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