如何重新加载更改的lua模块/脚本?

时间:2016-10-16 19:20:18

标签: c++ lua

我希望在更改时在“C / C ++”端动态重新加载* .lua文件。 如何以正确的方式做到这一点?我找到了描述“Lua”方面的过程的答案。设置 package.loaded。??? = nil 并且 要求 会自动重新加载它,但我没有那部分。

我尝试下一个代码(仅用于测试目的):

void loadScript(lua_State* l, const std::string& f_path) {
    int error = luaL_loadfile(l, f_path.c_str()) || lua_pcall(l, 0, 0, 0);
    cout << "load file result: " << error << endl;
}

每次更改内容 f_path 时,我都会调用它。

它工作正常,但我有假设:

  1. 每当我加载相同的文件时 - 我没有重新加载它,我只是添加新项目到“ lua stack ”并在堆栈顶部执行什么(最新项目已加载)。
  2. 将重新加载的文件可能不应该包含全局变量。
  3. 我说:“挑衅做错事”。
  4. 我需要澄清它应该是什么,并了解它是如何工作的。

0 个答案:

没有答案