lua调用c++

来源:互联网 发布:python赚外快 编辑:程序博客网 时间:2024/05/17 08:25

<1>c++部分

extern "C"{#include <lua.h>#include <lualib.h>#include <lauxlib.h>};lua_State* L;static int average(lua_State* L){int n = lua_gettop(L);double sum = 0;for(int i = 1; i <= n; i++){if(!lua_isnumber(L, i)){lua_pushstring(L, "Incorrect argument to 'average'");lua_error(L);}sum += lua_tonumber(L, i);}lua_pushnumber(L, sum/n);lua_pushnumber(L, sum);return 2;}void luaCallCPlusPlus(){L = lua_open();luaL_openlibs(L);lua_register(L, "average", average);luaL_dofile(L, "e15.lua");lua_getglobal(L, "avg");lua_tointeger(L, -1);CCLog("===>%d", lua_tointeger(L, -1));  //30lua_pop(L, 1);lua_getglobal(L, "sum");lua_tointeger(L, -1);lua_close(L);}
<2>lua部分

//e15.luaavg,sum = average(10, 20, 30, 40, 50)print("The average is:"..avg)print("The sum is:"..sum)
<3>使用

通过luaCallCPlusPlus既可以看到日志结果


0 0