如何相对于当前加载的脚本加载lua脚本?

我正在加载一个尝试导入第二个lua脚本的lua脚本。问题在于,我在c++中加载初始脚本(Main.lua)并指定了此lua的路径,然后当Main.lua尝试在"Other.lua"上运行dofile时,它找不到它...。

我得到...

打不开 Other.lua:没有那个文件或目录

main.cpp

#include "sol.hpp"
int main()
{
      sol::state m_lua;
      m_lua.open_libraries(sol::lib::base);
      sol::protected_function_result result = m_lua.script_file("../../../Desktop/Main.lua");
      if (!result.valid())
      {
         sol::error err = result;
         std::string what = err.what();
         std::cout << "Failed to load script: Test.lua - " << what << std::endl;
      }
   }
}

Main.lua

print("主加载");
dofile("Other.lua");

Other.lua - 存储在与"Main.lua"相同的文件夹中

print("其他加载");
点赞
用户4984564
用户4984564

只需从 C++ 将路径传递给 Main.lua,以便其可以加载 Other.lua 脚本,并在将其传递给 Lua 的 dofile 之前将路径附加到文件名中。

2020-08-18 06:14:02