繁体   English   中英

Lua C:我将如何使用 Lua 源代码创建一个 Lua 解释器来执行给定的 Lua 代码块?

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

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