LuaJIT,如何将cdata转换为userdata?

时间:2013-09-16 04:48:52

标签: lua ffi luajit

我想使用LuaJIT在Lua中创建结构和数组的能力。但是我使用数据的函数需要userdata或一个字符串(不是字符串表示,只是用作容器)来存储数据。

但是看看api我不知道这是否可能。是吗?

感谢。

1 个答案:

答案 0 :(得分:3)

LuaJIT FFI不应与经典的C / API混合使用。虽然有一些机制可以将const char*指针转换为Lua字符串(ffi.string),但是无法将FFI结构转换为Lua userdata。

FFI函数不了解lua_State,这是在C端创建userdata所必需的。

我不知道您的C / API绑定基础目前有多大,但如果您使用FFI,则一种解决方案是将您的C / API函数重写为FFI。您可以逐步完成,确保FFI和C / API之间有明确的界限。

相关问题