从c++调用Lua 5.2函数
Calling Lua 5.2 function from C++
我对Lua很陌生。我一直在寻找如何从c++调用Lua函数的一些示例代码,但示例代码使用5.1,我试图让它与5.2一起工作。
下面是有问题的示例代码和我的注释:
lua_State *luaState = luaL_newstate();
luaopen_io(luaState);
luaL_loadfile(luaState, "myLuaScript.lua");
lua_pcall(luaState, 0, LUA_MULTRET, 0);
//the code below needs to be rewritten i suppose
lua_pushstring(luaState, "myLuaFunction");
//the line of code below does not work in 5.2
lua_gettable(luaState, LUA_GLOBALSINDEX);
lua_pcall(luaState, 0, 0, 0);
我已经在5.2参考手册(http://www.lua.org/manual/5.2/manual.html#8.3)中读到需要从注册表(而不是上面的lua_gettable语句)中获得全局环境,但我无法确定我需要做出哪些更改才能获得此工作。我试过了,例如:
lua_pushglobaltable(luaState);
lua_pushstring(luaState, "myLuaFunction");
lua_gettable(luaState, -2);
lua_pcall(luaState, 0, 0, 0);
下面的代码应该可以在5.1和5.2中工作。
lua_getglobal(luaState, "myLuaFunction");
lua_pcall(luaState, 0, 0, 0);
但是一定要测试luaL_loadfile
和lua_pcall
的返回码。你最好使用luaL_dofile
。
相关文章:
- 使用 LuaBridge 或 Lua 将对象传递给 Lua 函数C++
- 将 Lua 函数块转换为 C 字符串
- 调用 lua 函数的地址为 C/C++?
- 如何使用重新定义的打印函数打印Lua表?
- 如何在C++中获取lua函数作为参数,然后调用它
- C++-在没有自定义.lib文件的情况下从Lua C模块调用Lua函数
- 将带有字段的表作为参数从C++传递给 Lua 函数?
- Lua 中看起来像表的函数是什么?
- 如何在C++中从Lua函数获取返回表?
- 从Qt/C++-App并行运行两个Lua函数
- Lua C API 自定义打印函数,在字符串中传递空格时不调用
- C++ 和 Lua 函数之间的交互与 3D 矢量参数
- 如何获取从C++发送到Lua函数的表的更新值?
- 包装C++函数以使用 SWIG 获取 Lua 字符串表
- 如何在 lua cpp 模块中调用托管 c++ dll 函数
- 在C 函数中打印一个来自LUA的静态变量
- 从 LUA 脚本调用类函数C++
- 如何在LUA C API中分配全局LUA函数变量
- 如何安全地从 Lua 调用C++函数
- 尝试执行绕道附加,但无法将我的lua函数的数据类型转换为LPVOID