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

我在C主机中嵌入了Lua。并且我已经在Lua中注册了几个C函数。

是否有任何方式,当我调用Lua并且Lua调用我的C函数时,一个值可以从"外部"C代码传递到"内部"C代码中?

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

点赞
用户7509065
用户7509065

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

顺便说一下,Lua本身不是线程安全的,所以如果你的应用程序是多线程的,要小心。

2021-01-12 00:18:31