基于Lua实现C和C++程序的动态配置

  
       .Net 程序可轻易的实现动态配置,我一直都想为我的 C++ 服务程序也实现运行时可动态更改的配置,直到接触了 Lua 之后才发现原来是如此的简单。

       Lua是可嵌入到C和C++程序的脚本语言,其强大的应用在网络游戏《魔兽争霸》中得到了淋漓尽致的体现。作为一个初学者,这里我只讨论怎样基于Lua实现运行时可动态更改的配置。

       原来的配置是ini格式的,例如:

       [contact]
       name = "zhangtao"
       email = "hack@ogdev.net"   
       url   = "http://www.ogdev.net"
       age = 20

        改为Lua文件,是如下格式:
        contact ={
              name = "zhangtao",
              email = "hack@ogdev.net",
              url   = "http://www.ogdev.net",
              quote = [[There are 10 types of people
                      who can understand binary.]], --Lua支持的多行字符串
              age = 20,
              rate = 30.22 --Lua支持的浮点数
        }

        在LuaPlus库的基础上,我写了个类LuaConfigReader,这样读取配置内容就变得如此简单:
      const char * section = "contact";
      std::string file = "config.lua";

      LuaConfigReader reader(file);

      printf(" name = %s\n",reader.getString(section,"name"));
      printf(" quote = %s\n",reader.getString(section,"quote"));
      printf(" age = %d\n",reader.getInteger(section,"age"));     

        这样,程序的配置可扩展性就很好了。而且,在程序运行中可随时更改配置内容,一旦配置保存将立刻生效。这只是Lua最最基本的用处,算是一个敲门砖吧。

      备注:Lua只提供C接口,LuaPlus 是Lua的C++封装。

转载于:https://www.cnblogs.com/itrust/archive/2006/07/15/451490.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值