0
林具有在我痛飲接口文件接口連接的.C/.H對於小GUI庫中的以下:痛飲的Lua構件代
%{
void Widget_name_set(Widget *widget, char *name)
{
if(!name) return;
WidgetSetName(widget, name);
}
char *Widget_name_get(Widget *widget)
{
return WidgetGetName(widget);
}
%}
struct Widget
{
%extend
{
char name[ 32 ];
Widget(void)
{
return WidgetNew();
}
~Widget()
{
if($self) WidgetDelete($self);
}
void SetName(char *name)
{
Widget_name_set($self, name);
}
char *GetName()
{
return Widget_name_get($self);
}
}
};
然後,我使用的接口文件,以產生一個Lua包裝。如果我在Lua中打電話,結果幾乎如預期的那樣:
w = Widget();
w:SetName("test");
一切都好。但是,如果我這樣做:
w = Widget();
w.SetName(nil, "test");
顯然,它崩潰的參數是零。有沒有辦法(使用Swig接口或在Lua中)用點來抑制所有呼叫,並只保留帶有列的呼叫?像這樣,它會更容易爲用戶,並會避免我添加1000萬指針等檢查...
Lua不使用分號來表示行的結尾。 – kikito 2012-04-26 00:19:32