2010-11-24 76 views
0

编辑2:Lua C问题

**我想有一个详细的解释。我是C语言的NOOB。

我将如何使用Lua源代码创建一个Lua解释器来执行给定的Lua代码块? Lua代码块将作为char发送。

回答

2

调用Lua需要lua_load调用编译代码块,然后调用lua_call来运行它。有关如何完成的一个很好的例子,请看example provided here:

的第一个参数任何Lua的API函数始终是一个解释的状态,这是lua_open()

返回值的例子实际使用luaL_loadbuffer它包装调用lua_load,使编译C字符串更容易一点。您可以阅读参考手册中涵盖The Auxiliary Library的章节中的使用方法。这将lua 留在lua堆栈的顶部,然后可以用lua_call来调用,但该示例使用lua_pcall,其提供了一些错误捕获。因为刚刚编译的块没有任何参数(它是块而不是函数),并且没有任何您感兴趣的返回值,并且您希望看到与产生的完全一样的错误,所有除第一个之外的参数(它总是lua解释器状态)可以是零。

+0

看起来不错。我会尝试 – 2010-11-24 22:03:45