ACE入门 配置文件

来源:互联网 发布:淘宝企业店铺跟旗舰店 编辑:程序博客网 时间:2024/04/30 15:12


ACE 是一个很大的东西,每个人学习路径可能都不一样。我的方法首先阅读 C++ Network Programming, Volume 1 ,让自己明了ACE 的设计思路;再从实际的小项目入手,逐步的用 ACE 内容替换掉自己的东西,在比较和实践之间求得较深的了解。
     就一个正常项目而言,一个配置文件是必不可少的,那就先从这里入手了。linux/unix 程序可能经常用到命令行方式,不过我还是比较喜欢 windowsini 格式的,当然,有xml 的更好,不过 ACE 里暂时没有提供。配置文件的使用很简单,ACE 提供的类也很友好。在这里主要是整理一些细节,让大家不在这里浪费太多时间。
 
  
 1、ACE 配置类简介与使用
 
  
先给出一个印象(为了直指主题,所有错误处理都被清除,具体例子请看最后源码): 

    ACE_Configuration_Heap config; 
        config.open();
     ACE_Registry_ImpExp impExp(config);    
// win32的注册表导出格式
     
//ACE_Ini_ImpExp impExp(config);          //
 windows的.ini格式,注意读出来的都是字符串,类型需要自己转换
     impExp.import_config(ACE_TEXT("配置文件名"));    // 读取配置文件 
 
     ACE_Configuration_Section_Key section;
// 指向一个配置节section

     config.open_section(config.root_section(), ACE_TEXT("节名"), 0
, section);
 
     
// 读取字符串

     ACE_TString str;   
     config.get_string_value(section, ACE_TEXT(
"键名"), str); //
 ACE_Ini_ImpExp,只能使用这一种方法
 
    
// 读取整型

     u_int i;
     config.get_integer_value(section, ACE_TEXT(
"键名"
), i);
 
    
// 读取二进制

     void * data_out = 0// 最好使用智能指针

     size_t length = 0
;
     config.get_binary_value(section, ACE_TEXT(
"键名"
), data_out, length);
     delete []data_out;

    可以浏览一下 ACE_Configuration_Heap 和 ACE_Ini_ImpExp 或 ACE_Registry_ImpExp 之间的关系。不需要套上术语来理解,简化一下代码对此很有帮助
 

 一个超简化的ACE_Configuration_Heap

原创粉丝点击