繁体   English   中英

C&Lua:luaL_dostring返回值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM