基于libconfig进行配置文件解析

描述

本文转自公众号,欢迎关注

基于libconfig进行配置文件解析 (qq.com)

准备

官网

https://hyperrealm.github.io/libconfig/

源码

git clone https://github.com/hyperrealm/libconfig.git

在自己工程中使用

这里基于VS2022,其他环境类似。

库方式

打开libconfig\\libconfig_vs2017.sln

文件

点击左侧工程目录解决方案

菜单栏 生成->生成解决方案

文件

生成的库文件位于libconfig\\build\\x64下的

libconfigd.lib

libconfigd.dll

还有一些测试程序

比如命令行下./c_example1d.exe可以运行测试程序

文件

在自己的工程目录添加libconfig文件夹,添加inc和lib子目录

将libconfigd.lib

libconfigd.dll

复制到lib目录下

将源码路径libconfig\\lib下所有的h文件复制到自己的inc目录下

右键点击工程名->属性

设置头文件包含路径

$(MSBuildProjectDirectory)\\Src\\libconfig\\inc;

设置库文件包含路径

$(MSBuildProjectDirectory)\\Src\\libconfig\\lib;

文件

设置链接的库

文件

测试代码

#include < stdio.h >


#include < stdlib.h >


#include < libconfig.h >


#include "param_cfg.h"


int main(int argc, char** argv)
{


config_t cfg;


config_setting_t* setting;


int version;


int pid;


int vid;


config_init(&cfg);


/* 读配置文件. */


if (!config_read_file(&cfg, "wq.cfg"))


{


fprintf(stderr, "%s:%d - %s\\n", config_error_file(&cfg),


config_error_line(&cfg), config_error_text(&cfg));


config_destroy(&cfg);


return(EXIT_FAILURE);


}


/* 获取版本信息. */


if (config_lookup_int(&cfg, "version", &version))


printf("version: %d\\n\\n", version);


else


fprintf(stderr, "No 'version' setting in configuration file.\\n");


/* Output a list of all books in the inventory. */


setting = config_lookup(&cfg, "id");


if (setting != NULL)


{


config_setting_lookup_int(setting, "pid", &pid);


config_setting_lookup_int(setting, "vid", &vid);


}


printf("pid=%#x;vid=%#x\\r\\n",pid,vid);


config_destroy(&cfg);


return(EXIT_SUCCESS);


}

Exe所在目录创建配置文件wq.cfg

// 配置文件.


// 版本:


version = 10;


// PID&VID:


id =


{


pid = 0x1993;


vid = 0x0101;


};

将libconfigd.dll复制到exe所在目录。

看到打印如下

version: 10


pid=0x1993;vid=0x101

 

 审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分