使用swig包装一个参数超出类型指针的函数

时间:2010-04-02 06:20:13

标签: ruby lua 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.

我需要写一个类型图吗?我该怎么办?

1 个答案:

答案 0 :(得分:1)

接口文件中不应采取任何特殊操作。 SWIG可以照顾它。

Lua 5.1.3  Copyright (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
>