[英]C & Lua: luaL_dostring return value
在我的C文件中,我像这样调用luaL_dostring:
luaL_dostring(L, "return 'somestring'");
如何在此行之后在C中读取此返回值?
谢谢。
编辑:谢谢你的帮助。
我想在检索它之后添加它以删除元素,您使用:
lua_pop(L, 1);
该值保留在Lua堆栈上。 要检索该值,请使用lua_toXXXX
函数之一,其中-1作为索引参数(-1表示堆栈的顶部)。 或者,使用lua_gettop()
来获取堆栈的大小。
在您的情况下,使用此:
luaL_dostring(L, "return 'somestring'");
const char * str = lua_tostring(L, -1);
文档说luaL_dostring
确实有一个返回值,成功时为零:
luaL_dostring
加载并运行给定的字符串。 它被定义为以下宏:
(luaL_loadstring(L, str) || lua_pcall(L, 0, LUA_MULTRET, 0))
如果没有错误,则返回0;如果出现错误,则返回1。
强大的代码应检查0返回值。
严格地说,宏扩展为布尔值,如果有错误,则在C ++中为true
。 这在单元测试中可能很重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.