将 Lua 脚本从 C++ 传递给 Lua
将Lua脚本从C++传递给Lua的想法包括我们必须加载库和头文件,因为Lua是ANSIC,如果我们用C++编码,我们需要将#includes括在extern“C”。
旧的和最常用的方法是加载Lua提供的库,然后简单地从Lua调用C++函数。
为了将脚本从C++加载到Lua,我们需要设置和关闭Lua解释器,我们可以在以下代码的帮助下完成。
示例
考虑如下所示的代码-
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } int main(int argc, char *argv[]){ lua_State* L; initialize Lua interpreter L = luaL_newstate(); load Lua base libraries (print / math / etc) luaL_openlibs(L); //////////////////////////////////////////// We can use Lua here ! ///////////////////////////////////////////// lua_close(L); printf( "按回车退出..." ); getchar(); return 0; }
在此之后,我们可以简单地使用LuaL_dostring(L,…)函数将一个字符串直接发送到Lua解释器,它将被执行,就像该字符串在一个用dofile执行的文件中一样。
示例
考虑如下所示的代码-
luaL_dostring(L, "for x = 1, 5 do print(x) end");输出结果
1 2 3 4 5