C++调用Lua函数

int main()
{
lua_State * L = luaL_newstate();
luaL_openlibs(L);
luaL_dofile(L, "2.lua");

lua_getglobal(L,"test1");//调用无参无返回值函数
lua_pcall(L,0,0,-1);//有0个参数0个返回值,调用失败返回-1

lua_getglobal(L,"test2");//调用有参无返回值函数
lua_pushnumber(L,1);
lua_pushnumber(L,2);
lua_pcall(L,2,0,-1);//有两个参数0个返回值,调用失败返回-1

lua_getglobal(L,"test3");//调用有参又返回至函数
lua_pushnumber(L,1);
lua_pushnumber(L,2);
lua_pcall(L,2,1,-1);//有两个参数一个返回值,调用失败返回-1
int num = lua_tonumber(L,-1);
printf("%d\n",num);

getchar();
return 0;

}



/**********************************2.lua************************************/



function test1()
print("调用成功");
end;


function test2(a,b)
print(a+b);
end;


function test3(a,b)
return a+b;
end;



你可能感兴趣的:(C++调用Lua函数)