lua与C++交互---配置文件

本文介绍了如何使用Lua作为配置文件,通过Lua与C++交互来读取和设置配置数据。首先讲解了如何获取Lua中的简单变量和table数据,包括通过lua_getglobal获取全局变量和使用lua_getfield获取表内的数据。接着,文章阐述了如何为Lua脚本预定义变量,包括在C++中创建和设置表的内容,以及在lua全局环境中设置变量。最后,提到了两种预定义颜色的方法,一种是直接在lua中注册所有颜色,另一种是在C++中根据lua中的字符串查找预定义颜色,以此提高效率并进行错误检查。
摘要由CSDN通过智能技术生成

lua作为配置文件

一. 基础数据配置

背景: 我们可以将一些常常改动的数据写到lua文件中去,就不用每次在程序更改了一个小数据的时候就要重新编译整个项目。我们可以将这个工程里面写好解析脚本的功能就可以啦~

1、简单变量的获取

实例: 我们可以在config.lua文件中写到。

// config.lua文件
width = 1000
height = 6000

然后在c++程序里读取脚本文件里配置的数据(例如这里是width和heigth),将数据用于C++的程序;
下述实例单纯

//c++文件的main函数部分
lua_State *lua_state;
    lua_state = luaL_newstate();
    std::string scriptPath = "config.lua";
    int status = luaL_loadfile(lua_state, scriptPath.c_str()) || lua_pcall(lua_state, 0, LUA_MULTRET, 0);
    if(status == LUA_OK)
    {
        lua_getglobal(lua_state,"width");
        lua_getglobal(lua_state, "height");

        if(lua_isnumber(lua_state, -1))
        {
            std::cout << "The height in config is " << lua_tonumber(lua_state, -1) << std::endl;
        }
        if(lua_isnumber(lua_state, -2))
        {
            std::cout << "The width in config is " << lua_tonumber(lua_state, -2) << std::endl;
        }
        lua_pop(lua_state, 2);
    }
    else
    {
        std::cout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值