3

我正在使用 Lua 来扩展我的 C++ 应用程序。我的应用程序有一些可以通过 Lua 扩展的部分(例如: timer event、 ),所以对于每个部分,我创建一个新状态并在其中加载与该部分相关的文件和函数,因此对部分进行更改并重新加载它不会ui events影响其他部分。

现在,我需要在所有其他部分之间共享一些通用文件。

例如:我正在为计时器事件部分制作一个函数,并且在那些常规文件中定义了一个对象,我想在此函数中更改其信息。现在我在 ui 事件部分,当我访问通用文件中的该对象时,我需要它包含从 ui 部分所做的更改。

所以我考虑为那些创建另一个状态,比如为另一个状态的全局表创建一个 __index 来搜索这个状态,如果他们没有在其中找到一些东西:))显然我不知道怎么做

我希望有人明白我的意思并告诉我如何做到这一点?!

4

1 回答 1

3

Lua 状态创建lua_newstatelua_newstate完全分离,不能直接相互通信:您需要手动将数据从一个状态复制到另一个状态。

您可以在一种状态下为全局表设置一个 __index 元方法以在另一种状态下查找数据,但您必须在 C 中执行此操作或将函数导出到执行此操作的 Lua。

于 2013-07-01T12:06:01.857 回答