【问题标题】:Can I pass a value from my C host through Lua to a callback C function?我可以通过 Lua 将 C 主机中的值传递给回调 C 函数吗?
【发布时间】:2021-04-16 21:32:19
【问题描述】:

我在 C 主机中嵌入了 Lua。而且我有几个用 Lua 注册的 C 函数。

当我调用 Lua 然后 Lua 调用我的 C 函数时,有什么方法可以将值从“外部”C 代码传递到“内部”C 代码?

具体的问题是我有一个 HTTP 请求指针,我需要从回调函数中访问它,由于这可能是多线程代码,我宁愿不将它存储在全局变量中。

【问题讨论】:

    标签: c lua lua-api


    【解决方案1】:

    当您的“外部”C 代码调用 Lua 时,将 HTTP 请求指针作为轻量级用户数据参数传递。在 Lua 中,将其视为一个不透明的值,您再次将其作为参数传递给“内部”C 回调。然后让您的“内部”C 代码读取它并将其转换回正确的类型。

    顺便说一句,Lua 本身不是线程安全的,所以如果您的应用程序是多线程的,请注意这一点。

    【讨论】:

      猜你喜欢
      • 2013-04-14
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多