首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从lua脚本调用c函数

从lua脚本调用c函数
EN

Stack Overflow用户
提问于 2014-01-22 11:08:48
回答 2查看 1.8K关注 0票数 0

我在这方面找到了一些参考资料,但我无法使它们发挥作用。我有一个带有mysql和mysql代理的Debian盒。我正在用LUA脚本拦截SQL查询。

代码语言:javascript
复制
function read_query(packet)
        if packet:byte() ~= proxy.COM_QUERY then
                print("error read (COM_QUERY)")
        end
    local query = packet:sub(2)
    print ("query : " .. query )
           //Transformation here
    return proxy.PROXY_SEND_QUERY
end

我想解析和处理查询,这样我就可以用我已经开发的一些c++函数重写它。我试图找到调用这个函数的方法,但是我发现c主函数启动LUA注册过程的唯一方法。

有没有办法让LUA脚本调用编译后的C文件中的函数?

我应该如何打(LUA)和接听(C)电话的例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-22 12:49:56

lua.org提取液

当我们说Lua可以调用C函数时,这并不意味着Lua可以调用任何C函数。(有些包允许Lua调用任何C函数,但它们既不可移植也不健壮。).要从Lua调用C函数,我们必须注册它,也就是说,我们必须以适当的方式向Lua提供它的地址。

你应该看看这里

票数 0
EN

Stack Overflow用户

发布于 2014-01-22 12:56:40

SWIG是为您生成绑定的一个很好的选择: www.swig.org。您可以创建一个加载C头的.i文件,而SWIG为您生成所有绑定代码。然后编译生成的代码,将其链接到您的C库和Lua库,在您的脚本中需要“yourCLibrary”,您可以做您想做的事情。非常实用,您的包装器可以用于从其他语言(如Python和C# )访问C#。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21281229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档