gpt4 book ai didi

c++ - 如何从 lua 访问 lua 堆栈

转载 作者:搜寻专家 更新时间:2023-10-31 02:21:00 26 4
gpt4 key购买 nike

我有一个简单的程序,它在 lua 文件上运行 luaL_dofile(我们称它为“script.lua”,然后检查错误,然后再次运行该文件,依此类推。如果程序在任何时候发现错误,它会将其写入日志然后终止。问题是,script.lua 获取用户的输入,然后使用 loadstring 运行该字符串。我没有want to happen (and what does happen) 是 loadstring 创建一个错误(因为用户输入了错误的代码),然后 C++ 程序发现这个错误并终止程序。在我看来,最好的防止 C++ 程序发现错误的方法是将其从堆栈中删除,但我不知道如何从 script.lua 访问 lua 堆栈。

最佳答案

显然问题出在我一直都很傻。我更改了我的代码,以便它检测到错误然后打印出来,而不是使用 assert

script.lua 示例:

这不能正常工作:

local input = io.read()

assert(loadstring(input))()

这确实工作正常:

local input = io.read()

output, error = loadstring(input)
if (output == nil) then
print (error)
else
output()
end

关于c++ - 如何从 lua 访问 lua 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31975206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com