加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua调用c++

发布时间:2020-12-14 22:04:22 所属栏目:大数据 来源:网络整理
导读:1c++部分 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 argumen

<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));  //30

	lua_pop(L,1);
	lua_getglobal(L,"sum");
	lua_tointeger(L,-1);
	lua_close(L);
}
<2>lua部分

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读