草庐IT

c++ - 从 lua_pcall(L, 0, 0, 0) 获取所有错误

是否可以从C/C++获取lua栈中的所有错误?这是我试过的C++intmain(){lua_State*L=luaL_newstate();luaL_openlibs(L);if(luaL_loadfile(L,"LuaBridgeScript.lua")){throwstd::runtime_error("Unabletofindluafile");}interror=lua_pcall(L,0,0,0);while(error&&lua_gettop(L)){std::cout卢阿:printMessage("hi")printMessage2("hi2")输出:stack=1er

lua - lua-redis脚本出错

我正在尝试在redis中运行以下lua脚本:forj=0,5000dolocali=redis.pcall('incr','SS:'..ARGV[2])%5000ifredis.pcall('sismember','S:',i)==0thenifi>4999thenredis.pcall('set',"SS:"..ARGV[2],1)i=1endendifredis.pcall('get','SS:'..ARGV[2])>4thenreturn'forbiden'endredis.pcall('incr','C:'..ARGV[1])redis.pcall('sadd','US:'..

lua - 说明 redis.call() 和 redis.pcall() 之间的区别

我尝试执行以下错误的eval命令以了解redis.call()和redis.pcall()之间的区别eval"returnredis.call(ARGV[2],KEYS[1])"1keygeteval"returnredis.pcall(ARGV[2],KEYS[1])"1keyget在这两种情况下,我都得到了以下错误,(error)Luaredis()commandargumentsmustbestringsorintegers这个错误没有传达redis.call()和redis.pcall()之间的区别,如文档所示"redis.call()与redis.pcall()类似,唯一的区

lua - 说明 redis.call() 和 redis.pcall() 之间的区别

我尝试执行以下错误的eval命令以了解redis.call()和redis.pcall()之间的区别eval"returnredis.call(ARGV[2],KEYS[1])"1keygeteval"returnredis.pcall(ARGV[2],KEYS[1])"1keyget在这两种情况下,我都得到了以下错误,(error)Luaredis()commandargumentsmustbestringsorintegers这个错误没有传达redis.call()和redis.pcall()之间的区别,如文档所示"redis.call()与redis.pcall()类似,唯一的区

c++ - 使用 lua_pcall 调用的 lua 函数丢失的错误消息

我正在使用lua5.1,我正在使用lua来加载可以从C++调用的函数。intError=luaL_loadfile(LuaState,"Test.lua");if(!Error){Error=lua_pcall(LuaState,0,LUA_MULTRET,0);}if(Error){std::cerr问题是,如果我从C++调用的lua函数调用另一个出错的函数,那么返回的是该函数的第一个参数而不是错误消息。AlwaysErrorsOut定义为:intAlwaysErrorsOut(lua_State*LuaState){returnluaL_error(LuaState,"ErrorT

c++ - Lua 5.2 问题 : 'attempt to call a nil value' from lua_pcall

我在获取从C++调用的Lua5.2函数时遇到问题。这是Luablock(名为test.lua):functiontestFunction()print"HelloWorld"end这是C++:intiErr=0;//Createaluastatelua_State*lua=luaL_newstate();//Loadiolibraryluaopen_io(lua);//loadthechunkwewanttoexecute(test.lua)iErr=luaL_loadfile(lua,"test.lua");if(iErr==0){printf("successfullyloaded