将一个 lua 状态连接到另一个状态
Posted
技术标签:
【中文标题】将一个 lua 状态连接到另一个状态【英文标题】:Connecting a lua state to another one 【发布时间】:2013-06-28 12:59:50 【问题描述】:我正在使用 Lua 来扩展我的 C++ 应用程序。我的应用程序有一些可以由 Lua 扩展的部分(例如:timer event
、ui events
),因此对于每个部分,我都会创建一个新状态并在其中加载与该部分相关的文件和函数,因此对一个零件并重新加载它不会影响其他零件。
现在我需要在所有其他部分之间共享一些一般文件。
例如:我正在为计时器事件部分创建一个函数,并且在这些常规文件中定义了一个对象,我想在此函数中更改其信息。 现在我在 ui 事件部分,当我访问通用文件中的该对象时,我需要它包含从 ui 部分所做的更改。
所以我考虑为这些人创建另一个状态,并喜欢为另一个状态的全局表创建一个 __index,如果他们在其中找不到某些东西,则可以搜索该状态:)) 显然我没有知道如何做到这一点。
我希望有人明白我的意思并告诉我如何做到这一点?!
【问题讨论】:
您可能想要使用协程或使用现有的 Lua 多线程模块之一,I like this comparison。他们中的大多数应该能够以某种方式处理您想要的东西 【参考方案1】:使用lua_newstate
或lua_newstate
创建的Lua 状态完全分离,不能直接相互通信:您需要手动将数据从一种状态复制到另一种状态。
您可以在一种状态下为全局表设置 __index 元方法以在另一种状态下查找数据,但您必须在 C 中执行此操作或将函数导出到执行此操作的 Lua。
【讨论】:
感谢您提供的信息,我怀疑我是否可以这样做。我会去 exprting lua 函数:)以上是关于将一个 lua 状态连接到另一个状态的主要内容,如果未能解决你的问题,请参考以下文章
将 AppSync 连接到现有 RDS 以更改移动应用程序状态
是否可以查询 SQL Pivot 报告并将输出连接到另一个 select 语句中?