我可以通过 Lua 将值从我的 C 主机传递到回调 C 函数吗?

Can I pass a value from my C host through Lua to a callback C function?

我在 C 主机中嵌入了 Lua。我有几个用 Lua.

注册的 C 函数

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

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

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

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