如何在Lua脚本中为C创建用户数据

如何在Lua脚本中为C创建用户数据,lua,swig,Lua,Swig,SWIG将C的枚举视为userdata。(我检查了它生成的源代码。可能是一个bug?)。然后,我需要在Lua脚本本身中创建userdata。。。有什么好办法吗 然后,我需要在Lua脚本本身内部创建userdata 否。您希望在Lua中创建一个枚举数值。您可以像在C中一样执行此操作:使用枚举器的名称。这是一个具有枚举数值的对象。然而,SWIG的Lua组件决定封送这是不相关的;只需在Lua代码中使用名称。好吧,但我自己并不定义枚举。我正在使用lgi访问Gtk.PositionType.RIGHT的值

SWIG将C的枚举视为userdata。(我检查了它生成的源代码。可能是一个bug?)。然后,我需要在Lua脚本本身中创建userdata。。。有什么好办法吗

然后,我需要在Lua脚本本身内部创建userdata


否。您希望在Lua中创建一个枚举数值。您可以像在C中一样执行此操作:使用枚举器的名称。这是一个具有枚举数值的对象。然而,SWIG的Lua组件决定封送这是不相关的;只需在Lua代码中使用名称。

好吧,但我自己并不定义枚举。我正在使用lgi访问Gtk.PositionType.RIGHT的值。它实际上是一个整数。我试图定义它,但它仍然被视为整数。我认为这是因为SWIG找不到GtkPositionType的定义,所以它认为它是一个userdata。我不知道如何让它做正确的事情。SWIG甚至不能理解Gtk的头。好的,我自己在.I文件中写了定义。它似乎认为它是一个正确的数字。我意识到最大的问题是SWIG不能理解GTK的头,甚至不能理解用GObject编写的头。