Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在LuaJIT中使用ffi.load加载多个库吗?_Lua_Ffi_Luajit - Fatal编程技术网

我可以在LuaJIT中使用ffi.load加载多个库吗?

我可以在LuaJIT中使用ffi.load加载多个库吗?,lua,ffi,luajit,Lua,Ffi,Luajit,是否可以使用LuaJIT的ffi.load同时加载多个库 这样行吗 本地外国金融机构=要求(“外国金融机构”) 本地bor=需要(“位”).bor 外国金融机构([[ //来自每个库的C绑定! ]]) 返回ffi加载(bor(“lib1”、“lib2”、“lib3”)) 由于LuaJIT FFI库的工作方式,您无法将多个库真正导入到单个用户数据中。 当LuaJIT FFI在未定义的符号上抛出错误时,您可以轻松地做的唯一一件事就是在受保护的调用中调用userdata getter,并循环您想要获取

是否可以使用LuaJIT的ffi.load同时加载多个库

这样行吗

本地外国金融机构=要求(“外国金融机构”)
本地bor=需要(“位”).bor
外国金融机构([[
//来自每个库的C绑定!
]])
返回ffi加载(bor(“lib1”、“lib2”、“lib3”))

由于LuaJIT FFI库的工作方式,您无法将多个库真正导入到单个用户数据中。 当LuaJIT FFI在未定义的符号上抛出错误时,您可以轻松地做的唯一一件事就是在受保护的调用中调用userdata getter,并循环您想要获取的每个库

local function get(t, k)
  return t[k]
end

local superlib = setmetatable({
  ffi.load "a",
  ffi.load "b",
  ffi.load "c"
}, {
  __index = function (self, k, v)
    for _,l in ipairs(self) do
      local status, val = pcall(get, l, k)
      if status then
        return val
      end
    end
  end
})