使用Swig对其参数为指向结构体的指针的函数进行包装

我有以下功能:

typedef struct tagT{
int a ;
int b ;
}Point;

int lib_a_f_5(Point *out_t)
{

out_t->a = 20;
out_t->b = 30;

return 0;
}

我应该如何指导 SWIG 生成正确的 Ruby (或 Lua) 代码?

当将以下语句放入接口文件时:

%apply SWIGTYPE Point* {Point *out_t};

我收到了一个警告:

liba.i:7: Warning(453): Can't apply (Point *OUTPUT). No typemaps are defined.

我需要编写 typemap 吗?我应该如何做?

原文链接 https://stackoverflow.com/questions/2565296

点赞
stackoverflow用户115722
stackoverflow用户115722
在接口文件中不需要采取特殊措施,SWIG 可以解决它。

Lua 5.1.3版版权所有(C)1994-2008 Lua.org,PUC-Rio
> require 'mylib_swig'
> t=mylib_swig.Point()
> print(t.a)
0
> print(t.b)
0
> mylib_swig.lib_a_f_5(t)
in lib_a_f_5
> print(t.a)
20
> print(t.b)
30
>
2010-04-06 06:50:03