Lua和C++交互 学习记录之三:全局值交互

主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍)

部分内容查阅自:《Lua 5.3 参考手册》中文版 译者 云风 制作 Kavcc

vs2013+lua-5.3.3

1.C++读取lua中的值

①在hello.lua中设置一个全局变量:

global_c_read_val = "test val"

②在C++里读取

1 //lua->stack
2 lua_getglobal(L, "global_c_read_val");
3 //stack->c
4 if (const char* val = lua_tostring(L, -1)){
5     std::cout << val << std::endl;
6 }

2.Lua读取C++中的值

①在C++中写入

1 //c->stack
2 lua_pushstring(L, "test new value");
3 //stack->lua
4 lua_setglobal(L, "global_c_write_val");

②在Lua中读取

print(global_c_write_val)

Lua和C++交互系列:

Lua和C++交互 学习记录之一:C++嵌入脚本

Lua和C++交互 学习记录之二:栈操作

Lua和C++交互 学习记录之三:全局值交互

Lua和C++交互 学习记录之四:全局table交互

Lua和C++交互 学习记录之五:全局数组交互

Lua和C++交互 学习记录之六:全局函数交互

Lua和C++交互 学习记录之七:C++全局函数注册为Lua模块

Lua和C++交互 学习记录之八:C++类注册为Lua模块

Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类