SWIG-将结构从C返回到Java
我正在尝试包装(其中结果是ints/typedef ed ints的结构): 与java中的函数等价(这将引发异常,而不是返回错误): 我已尝试以类型映射方式实现解决方案,如所述:。然而,我在这一行遇到了一个障碍:SWIG-将结构从C返回到Java,java,c,struct,swig,Java,C,Struct,Swig,我正在尝试包装(其中结果是ints/typedef ed ints的结构): 与java中的函数等价(这将引发异常,而不是返回错误): 我已尝试以类型映射方式实现解决方案,如所述:。然而,我在这一行遇到了一个障碍: // After the call copy the result back %typemap(argout) cl_instance_t * %{ *($1_ltype)&$result = *$1; %} 执行此操作时,函数调用会匹配,至少在顶部运行的Java代码中
// After the call copy the result back
%typemap(argout) cl_instance_t * %{
*($1_ltype)&$result = *$1;
%}
执行此操作时,函数调用会匹配,至少在顶部运行的Java代码中是如此,但是这无法工作,因为SWIG生成的访问器具有与其函数调用不匹配的签名(其他cPtr
和this
)
我已尝试按照以下回答中的说明进行操作:“,后续操作:”。但是,swig预处理器语句,例如%inline%{…%}
,似乎无法解释。这里是否依赖于SWIG版本?目前是2.04
我在开源swig项目中做了一番探索(例如,这些项目似乎提供了一个更简单的接口,通过API所需的调用更少),是否有建议的方法确保您提供了一个干净的API
result_t get_result(instance_t instance);
// After the call copy the result back
%typemap(argout) cl_instance_t * %{
*($1_ltype)&$result = *$1;
%}