[英]Lua C: How would I use the Lua source code to create a Lua interpreter that will execute given blocks of Lua code?
我想要一个详细的解释。
我将如何使用 Lua 源代码创建一个 Lua 解释器来执行给定的 Lua 代码块? Lua 代码块将作为char
发送。
你需要调用lua_load
来编译代码块,然后调用lua_call
来运行它。 有关如何完成此操作的非常好的示例,请查看此处提供的示例: 。
任何 Lua api 函数的第一个参数总是一个解释器状态,它是lua_open()
的返回值
该示例实际上使用luaL_loadbuffer
包装对lua_load
的调用,以使编译 ac 字符串更容易一些。 您可以在涵盖辅助库的参考手册的章节中阅读如何使用它。 这会在 lua 堆栈的顶部留下一个 lua块,然后可以使用lua_call
调用lua_call
,但该示例使用lua_pcall
,它提供了一些错误捕获。 由于您刚刚编译的块不接受任何参数(它是一个块而不是函数)并且没有您感兴趣的任何返回值,并且您希望完全按照产生的错误查看错误,所有除了第一个(始终是 lua 解释器状态)之外的参数可以为零。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.