我有一个名为lua_tcall的C ++函数,它扩展了lua_pcall的功能。当调用lua_tcall时,它期望堆栈的最高值是Lua函数,就像lua_pcall那样。我希望lua_tcall能够创建一个线程,并使用全局堆栈顶部的函数作为线程的函数。如何将函数从全局状态推送到我从lua_newthread返回的lua_State *?
答案 0 :(得分:2)
要将函数从一个lua_State
传递到另一个,您必须使用全局两种状态将对象存储为中介。您可以使用全局变量或注册表项。
答案 1 :(得分:2)
要在状态之间传输值,lua_xmove优于使用共享中介。