相关疑难解决方法(0)

通过 require 在不同 Lua 状态之间共享全局变量

我试图找到一种方法来test.lua在不同的 Lua 状态之间共享特定 Lua 脚本(在示例中)的全局变量。

这是我的简单示例代码:

test.lua

num = 2
Run Code Online (Sandbox Code Playgroud)

main.cpp

#include <iostream>
#include <lua.hpp>
int main() 
{    
    lua_State *L1 = luaL_newstate(); //script A
    luaL_openlibs(L1);
    lua_settop(L1, 0);
    luaL_dostring(L1, "require('test') num = 5");

    lua_State *L2 = luaL_newstate(); //script B
    luaL_openlibs(L2);
    lua_settop(L2, 0);
    luaL_dostring(L2, "require('test') print(num)");

    lua_close(L1);
    lua_close(L2);
}
Run Code Online (Sandbox Code Playgroud)

我希望得到,5但我得到了2

不能在不同的lua_State*through之间共享全局变量require吗?

添加 :

如果不可能,那么在 C++ 中打开test.luausingluaL_loadfile然后创建 getter/setter 方法以num在脚本A和之间共享变量是个好主意B吗?

例如像这样,

脚本A: …

c++ lua

2
推荐指数
1
解决办法
1388
查看次数

标签 统计

c++ ×1

lua ×1