У меня есть таблица/объект, определенный в Lua. Я пытаюсь добавить некоторые методы из dll C-API. Я мог бы прикрепить методы по одному, но их очень много. Последняя строка кода ниже - это то, как я хотел бы это сделать. Предполагается объединить методы в объект Utilities
, чтобы мне не приходилось выполнять их по одному. Я получаю следующую ошибку:
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 должен возвращать объект пользовательских данных.