我正在使用Lua来扩展我的C ++应用程序。我的应用程序有一些部分(例如:timer event
,ui events
)可以由Lua扩展,因此对于每个部分,我创建一个新状态并加载与该部分相关的文件和函数,所以对零件进行更改并重新加载它不会影响其他零件。
现在,我需要在所有其他部分之间共享一些一般文件。
例如:我正在为定时器事件部分创建一个函数,并且在这些常规文件中定义了一个对象,我希望在此函数中更改其信息。 现在我在ui事件部分,当我在普通文件中访问该对象时,我需要它包含从ui部分进行的更改。
所以我想为那些创建另一个状态,并为其他状态的全局表创建一个__index来搜索这个状态,如果他们没有找到一些东西:))显然我不知道知道如何制作。
我希望有人明白我的意思并告诉我该怎么做?!
答案 0 :(得分:3)
使用lua_newstate
或lua_newstate
创建的Lua状态完全分开,无法直接相互通信:您需要手动将数据从一个状态复制到另一个状态。
您可以在一个状态中为全局表设置__index元方法以在另一个状态中查找数据,但您必须在C中执行此操作或将函数导出到执行此操作的Lua。