我想使用LuaJIT在Lua中创建结构和数组的能力。但是我使用数据的函数需要userdata或一个字符串(不是字符串表示,只是用作容器)来存储数据。
但是看看api我不知道这是否可能。是吗?
感谢。
答案 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之间有明确的界限。