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

时间:2023-03-08 19:12:38

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

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

vs2013+lua-5.3.3

1.C++读取lua中的值

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

global_c_read_val = "test val"

②在C++里读取

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

2.Lua读取C++中的值

①在C++中写入

 //c->stack
lua_pushstring(L, "test new value");
//stack->lua
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++注册的类