我有一個在Lua中定義的表/對象。我試圖從C-API dll中添加一些方法。我可以一次只附加一個方法,但其中有很多。下面代碼的最後一行是我想如何做到的。它應該將這些方法合併到Utilities
對象中,以便我不必一次一個地完成它們。我收到以下錯誤:如何使用LuaJIT和FFI將clib函數合併到表中?
bad argument #1 to 'pairs' (table expected, got userdata)" const char *
下面是一些示例代碼:
Utilities = {}
--
-- Other Code that defines/attaches methods to Utilities
--
-- Define some methods from my utilities.dll
local ffi = require("ffi")
ffi.cdef[[
void LogThis(const char * format, ...);
]]
local utilities_ffi = ffi.load("utilities")
-- This works
utilities_ffi.LogThis("hello world")
-- merge the two tables together (this fails)
for k,v in pairs(utilities_ffi) do Utilities[k] = v end
FFI必須返回用戶數據對象。