c++代码
static int l_sin(lua_State *tolua_S){
std::vector<int> agr1;
lua_pushnil(tolua_S);
int index = 1;
while (lua_next(tolua_S, index))
{
lua_pushvalue(tolua_S, -2);
int key = lua_tointeger(tolua_S, -1);
int value = lua_tointeger(tolua_S, -2);
agr1.push_back(value);
lua_pop(tolua_S, 2);
}
lua_settop(tolua_S, 1);
return 0;
}
注册给lua调用:
tolua_function(tolua_S, "mysin", l_sin);
lua 代码:
local t = {
10, 20, 30, 40
}
mysin(t)
执行以后, std::vector agr1 中存放了table的数据。
本文介绍了一个C++函数如何通过tolua库被Lua脚本调用的例子。C++函数接收Lua传递的一个table参数,并将其内容复制到一个std::vector容器中。此过程展示了不同编程语言间的数据交换。

2588

被折叠的 条评论
为什么被折叠?



