调用Lua函数
示例
#include <stdlib.h>
#include <lauxlib.h>
#include <lua.h>
#include <lualib.h>
int main(void)
{
lua_State *lvm_hnd = lua_open();
luaL_openlibs(lvm_hnd);
/* Load a standard Lua function from global table: */
lua_getglobal(lvm_hnd, "print");
/* Push an argument onto Lua C API stack: */
lua_pushstring(lvm_hnd, "您好CAPI!");
/* Call Lua function with 1 argument and 0 results: */
lua_call(lvm_hnd, 1, 0);
lua_close(lvm_hnd);
return EXIT_SUCCESS;
}在上面的示例中,我们正在执行以下操作:
如第一个示例所示,创建和设置LuaVM
从全局Lua表获取并将Lua函数推入虚拟堆栈
将字符串"HelloCAPI"作为输入参数推入虚拟堆栈
指示VM使用已在堆栈中的一个参数调用函数
关闭并清理
注意:
简而言之,这会lua_call()从堆栈中弹出函数及其参数,仅保留结果。
另外,使用Lua保护的呼叫会更安全-lua_pcall()而是。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西