11.C++调用Lua全局变量(表)
来源:互联网 发布:农村淘宝合伙人加盟 编辑:程序博客网 时间:2024/06/16 17:06
C++ 调用Lua 全局变量(表)
lua_getglobal(lua, "ta"); //调用后栈顶放的就是全局变量
lua_getfield(lua, -1, "name");//
printf("lua ta = %s\n", lua_tostring(lua, -1));
lua_pop(lua, 2);
列子:
C++:
//c++调用Lua给Lua传递表和访问Lua的表-----------------------
////第一种
lua_getglobal(L,"conf"); //取表
lua_getfield(L,-1,"height");
printf("height= %d\n",(int)lua_tonumber(L,-1));
lua_getfield(L,-2,"titlename"); //取值
printf("title = %s\n",lua_tostring(L,-1));
lua_pop(L,3);
//第二种,每取一次就把值出栈
lua_getglobal(L,"conf"); //取表
lua_getfield(L,-1,"height");
printf("height= %d\n",(int)lua_tonumber(L,-1));
lua_pop(L,1);
lua_getfield(L,-1,"titlename"); //取值
printf("title = %s\n",lua_tostring(L,-1));
lua_pop(L,1);
lua_pop(L,1); //最后要表出栈
LUA:
------------------c++调用Lua给Lua传递表和访问Lua的表-----------------------
conf = {
titlename="first lua",
height = 1080
}
C++给Lua传递表:
lua_newtable(lua); /* creates a table 创建一个表*/
lua_pushstring(lua, "name"); //压入表
lua_pushstring(lua, "c to lua name");
lua_settable(lua, -3); //弹出key, value, 表在栈顶了
lua_setglobal(lua, "cvar"); //将栈顶位置设置全局变量并出栈
例子:
c++
//c++给Lua传递表
lua_newtable(L);
lua_pushstring(L,"name");
lua_pushstring(L,"xiaoming");
lua_settable(L,-3);
lua_pushstring(L,"age");
lua_pushnumber(L,20);
lua_settable(L,-3);
lua_setglobal(L,"testCToLuaTable"); //设为全局变量
lua:
-------------------c++传递给Lua全局变量表
print("test name c++ -> lua table="..testCToLuaTable["name"]);
print("test age c++ -> lua table="..testCToLuaTable.age);
阅读全文
0 0
- 11.C++调用Lua全局变量(表)
- c获取lua全局变量 5
- [Lua]C/C++调用Lua
- [lua]C调用lua函数
- 0基础lua学习(十九)C调用Lua----03C调用lua 函数和变量
- c取Lua的全局变量数组
- c取Lua的全局变量数组
- Lua编程(六)C对Lua函数的调用
- Lua与C——调用Lua函数(三)
- Lua 调用自定义C模块(练习)
- Lua调用C#(非反射)
- C语言中调用LUA(1)
- C/C++ 调用 Lua
- c调用lua脚本
- Lua调用C函数
- C调用lua
- lua 调用c函数
- lua c/c++ 调用
- 多维动态规划——洛谷P1006 传纸条
- tensorflow笔记(四)之MNIST手写识别系列一
- python入门
- ASP.NET Core
- 设计模式的应用场景(6)--外观模式
- 11.C++调用Lua全局变量(表)
- stream_socket_enable_crypto(): this stream does not
- Number Sequence
- 使用SMTP发送邮件报错:Expected response code 250 but got code "553", with message "553 Envolope sender mis...
- hdu 6181 Two Paths(最短路,spfa)
- bzoj1597 [Usaco2008 Mar]土地购买
- 浏览器关闭后,Session会话结束了么?
- 学习Linux-4.12内核网路协议栈(2.4)——接口层数据包的发送
- SQL查询语句包