环球微动态丨基于libconfig进行配置文件解析
本文介绍基于libconfig进行配置文件解析
2023-06-08 10:20:19
本文转自公众号,欢迎关注
基于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);elsefprintf(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: 10pid=0x1993;vid=0x101
审核编辑:汤梓红
标签: