lua和c++互相调用

一,lua跳用c++函数:

c++函数原型:staticintaverage(lua_State*L);

返回值表示返回值的个数,返回值通过lua_pushxxx被放到栈顶。

lua_register(L,"average",average);表示注册c++函数

lua中通过这样调用:

avg,sum=average(10,20,30,40,50)

二,c++调用lua函数:

L=lua_open();

luaL_openlibs(L);

luaL_dofile(L,"LuaScript.lua");//加载lua中的定义

lua_close(L);

lua_getglobal(L,"luafun");可将lua全局函数luafun放到栈顶

lua_pushnumber(L,10);//根据luafun的参数需求,lua_pushxxx将参数放到栈顶

lua_call(L,2,1);//调用栈顶的函数,参数2个,返回值1个

lua_isnumber(L,-1)

lua_tonumber(L,-1);可参看栈顶元素类型和值

lua_getglobal(L,"globalVar");//可将lua全局变量放到栈顶

lua_gettop();查看栈元素个数

lua_pop(L,1);//弹出栈顶元素

相关推荐