1.Lua_pushstring(l,re);
lua_pushnumber(l,123);//压入栈顶
c++:
int CTestRe(lua_State *L)
{
lua_pushstring(L,"return value");
//在吧字符串压倒栈顶
return 1; //作为返回值传递给Lua,返回1个
}
/main
lua_register(lua,"CTestRe",CTestRe);
lua:
local re = CTestRe();
print("re = "..re);
2.Lua调用c++返回表(示例返回对象)
lua_newtable(l);//创建一个表格,放在栈顶
lua_pushstring(l,"name");//艳茹Key
lua_pushstring(l,"ccname");//压入value
//弹出Key,vlue,并设置到表,表在栈顶了作为返回值
lua_settable(l,-3);
c++:
int CTestRe(lua_State *L)
{
lua_newtable(L);
//插入key value
lua_pushstring(L,"name");
lua_pushstring(L,"xiaoming");
lua_settable(L,-3);//将值写入表中,注意这里讲值放入表中之后会将上面两个出栈
return 1; //注意这里要返回
}
/main
lua_register(lua,"CTestRe",CTestRe);
lua:
local tab= CTestRe();
print("name :"..tab["name"]);
传递多个表值:
c++改为:
int CTestRe(lua_State *L)
{
lua_newtable(L);
//插入key value
lua_pushstring(L,"name");
lua_pushstring(L,"xiaoming");
lua_settable(L,-3);//将值写入表中,注意这里讲值放入表中之后会将上面两个出栈
lua_pushstring(L,"age");
lua_pushnumber(L, 21);
lua_settable(L,-3);//注意这里还是-3
}
//main
//传递多个表值
lua_register(L, "CTestReTableN", CTestReTableN);
lua改为;
local tab= CTestReTableN();
print("name :"..tab["name"]);
print("age:"..tab["arg"]);
相关文章
- [C++]类的空指针调用成员函数后,会发生什么事?
- c++ std::sort函数调用经常出现的invalidate operator<错误原因以及解决方法
- 使用CodeViz生成C/C++函数调用关系图
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph) - 转
- C++中多态中构造函数与析构函数的调用
- c++ ado 调用存储过程并得到输出参数和返回值
- QTP调用DLL时,调用函数的返回值为字符串类型时,报错“变量使用了一个 VBScript 中不支持的 Automation 类型”
- C++ 中的指针、引用以及函数调用中的问题
- SWF获取cookie与js函数返回值
- 混合编程:VS2017 C++调用Python3.X类/对象/函数笔记【Windows】