在Lua中动态使用FFI函数调用

我们能否动态地从字符串创建一个函数并调用 ffi.C 绑定?

例如:

ffi.cdef [[

void foo_bar_A_get_info(void);
void foo_bar_B_get_info(void);

]]

some = ffi.load("some.so")
function call_fun(var)
    -- var can be A or B
    some.foo_bar_var_get_info()
end

call_fun("A")
call_fun("B")

我得到了以下错误:missing declaration for symbol 'foo_bar_var_get_info'

我在网上搜索了很多但是找不到任何方法,所以想在这里发帖,希望有人能帮助我。

点赞
用户646619
用户646619

从FFI中加载的C库与Lua表格一样进行索引; 您可以以相同的方式使用原始值对它们进行索引:

some["foo_bar"..some_string.."_baz"]()
2014-05-22 21:48:56