SWIG - 将结构从C返回到Java

时间:2015-09-21 16:18:57

标签: java c struct swig

我正在尝试换行(结果是ints / typedef-ed整数的结构):

ERROR_T get_result( const instance_t instance, result_t *results );

作为java中的功能等价物(它会引发异常,而不是返回错误):

result_t get_result(instance_t instance);

我试图按照JNI wrapper for C function using SWIG - what should be the typemap?所描述的方式实现类型图解决方案。但是我在这一行上遇到了障碍:

// After the call copy the result back
%typemap(argout) cl_instance_t * %{
  *($1_ltype)&$result = *$1;
%}

执行此操作时,函数调用匹配,至少在顶部运行的Java代码中,但是这无法工作,因为SWIG生成的访问器具有与其函数调用不匹配的签名(附加cPtrthis)。

我试图按照此答案中的说明操作:“Create a typemap for a function that returns through arguments”,后续跟进:“Resolving struct properties for SWIG interface file”。然而,swig预处理器语句,例如, %inline %{...%},似乎无法解释。这里是否依赖SWIG版本?目前在2.04。

我在开源swig项目中蠢蠢欲动(例如LiquidFun - 这些似乎提供了一个更简单的界面,通过API需要更少的调用 - 有一种建议的方法来确保你提供一个干净的API?

0 个答案:

没有答案