本博文主要总结用MFC配置ini文件的用法,全文分为三大部门。第一部分介绍三个核心函数功能和各个参数意义。第二部分给出一个应用实例的详细注释代码。第三部分给出了程序编译执行后的结果。

一、WritePrivateProfileString函数和GetPrivateProfileString函数功能和各个参数详细分析。

用MFC配置ini文件的核心函数有三个,分别为WritePrivateProfileString和GetPrivateProfileString和GetPrivateProfileInt。下面分别讲解这三个核心函数的功能和各个参数的意义。

1.1 WritePrivateProfileString函数

1.1.1函数功能:

将lpString(CString型)变量存入lpFileName(Cfg.ini)文件里面,按照lpAppName字段进行分类索引。

1.1.2各个参数详解:

BOOL WritePrivateProfileString(

   LPCTSTRlpAppName,LPCTSTRlpKeyName,LPCTSTRlpString,LPCTSTRlpFileName);

//其中各参数的意义:

LPCTSTR lpAppName; //是INI文件中的一个字段名.

LPCTSTR lpKeyName;//是lpAppName下的一个键名,通俗讲就是变量名.

LPCTSTR lpString; //是键值, 也就是变量的值,不过必须为LPCTSTR型或CString型的.

LPCTSTR lpFileName;//是完整的INI文件名.

1.1.3调用

WritePrivateProfileString(“StudentInfo1”,“身份证”,“44022520070001”,".\ConfigFile\ConfigInit.ini");

1.2 GetPrivateProfileString函数

1.2.1函数功能:

将lpFileName(Cfg.ini)文件里面的lpKeyName (CString型)变量的值取出,存入lpReturnedString缓冲区(也是CString类型),按照lpAppName字段进行分类索引。

1.2.2各个参数详解:

DWORD GetPrivateProfileString(

   LPCTSTRlpAppName,LPCTSTRlpKeyName,LPCTSTRlpDefault,LPTSTRlpReturnedString,DWORDnSize,LPCTSTRlpFileName);

//其中各参数的意义:

//前二个参数与 WritePrivateProfileString中的意义一样.

lpAppName; //是INI文件中的一个字段名.

lpKeyName;// 是lpAppName下的一个键名,通俗讲就是变量名.

lpDefault;// : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.

lpReturnedString;// : 接收INI文件中的值的CString对象,即目的缓存器.

nSize;// : 目的缓存器的大小.

lpFileName;// : 是完整的INI文件名.

1.2.3调用

GetPrivateProfileString(“StudentInfo1”,“Name”,“赵钱孙”, strName.GetBuffer(MAX_PATH),MAX_PATH,".\ConfigFile\ConfigInit.ini");

1.3 GetPrivateProfileInt函数

1.3.1函数功能:

将lpFileName(Cfg.ini)文件里面的lpKeyName (CString型)变量的值取出,存入lpReturnedString缓冲区(也是CString类型),按照lpAppName字段进行分类索引。

1.3.2各个参数详解:

UINT GetPrivateProfileInt(

   LPCTSTRlpAppName,LPCTSTRlpKeyName,INTnDefault,LPCTSTRlpFileName);//其中各参数的意义:

//前二个参数与 WritePrivateProfileString中的意义一样.

LPCTSTR lpAppName; //是INI文件中的一个字段名.

LPCTSTR lpKeyName;//是lpAppName下的一个键名,通俗讲就是变量名.

INT nDefault; //如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.

LPCTSTR lpFileName;//是完整的INI文件名.

1.3.3调用

GetPrivateProfileInt(“StudentInfo2”,“Age”, 1,".\ConfigFile\ConfigInit.ini");

二、调用实例

2.1创建一个MFC基本对话框工程,在对话框界面添加一个按钮函数,将按钮命名为【配置文件】,如下图所示:

图2.1

2.2双击【配置文件】按钮,在按钮事件处理函数OnBnClickedButtonConfig()中,添加如下代码(可直接复制粘贴)

//"StudentInfo1"表示字段 "身份证"表示字段中的成员变量 "44022520070309"表示"身份证"节点中的变量值 ".\ConfigFile\ConfigInit.ini"表示ini文件的存储目录

   //ini文件可用txt文本打开,打开后的前几行内容如下://[StudentInfo]//Name = 李四//Age = 18//身份证 = 44022520070309//[StudentInfo1]//Name = 李四//Age = 18//身份证 = 44022520070309//注意:写入ini文件的内容,在同一个字段内,不能有相同的内容排列 比如[StudentInfo]字段下,"Name =李四"只有一个,要想跟"Name =张三"并存,就必须另开一个段或者用序号作为排列。如果是直接"Name =张三",则"Name =李四"会被覆盖,结果是只有"Name =张三"这个Name变量。DeleteFile(".\\ConfigFile\\ConfigInit.ini");//删除"ConfigInit.ini"配置文件,然后下面的函数再创建一个新的,进行ConfigInit.ini文件的初始化BOOLResult1 = WritePrivateProfileString("StudentInfo1","身份证","44022520070001",".\\ConfigFile\\ConfigInit.ini");BOOLResult2 = WritePrivateProfileString("StudentInfo1","Name","张三",".\\ConfigFile\\ConfigInit.ini");BOOLResult3 = WritePrivateProfileString("StudentInfo1","Age","25",".\\ConfigFile\\ConfigInit.ini");BOOLResult4 = WritePrivateProfileString("StudentInfo2","身份证","44022520070002",".\\ConfigFile\\ConfigInit.ini");BOOLResult5 = WritePrivateProfileString("StudentInfo2","Name","李四",".\\ConfigFile\\ConfigInit.ini");BOOLResult6 = WritePrivateProfileString("StudentInfo2","Age","28",".\\ConfigFile\\ConfigInit.ini");if(Result1&&Result2&&Result3){//AfxMessageBox(_T("配置信息写入成功!"));}//读取ini配置文件中的信息,读CString变量//"StudentInfo1"表示字段  "Age"表示字段中的成员变量  "赵钱孙"表示字段成员变量默认值,前提是前两个信息不存在  strName.GetBuffer(MAX_PATH)表示缓冲区,存储CString内容  MAX_PATH表示缓冲区最大存储空间 ".\\ConfigFile\\ConfigInit.ini"表示存储目录//程序执行后,strName中的值为"张三"CStringstrName;GetPrivateProfileString("StudentInfo1","Name","赵钱孙", strName.GetBuffer(MAX_PATH),MAX_PATH,".\\ConfigFile\\ConfigInit.ini");//读取ini配置文件中的信息,读int变量intResult = GetPrivateProfileInt("StudentInfo2","Age", 1,".\\ConfigFile\\ConfigInit.ini");

三、程序编译和执行后的结果,如下图所示:

图3.1 自动生成一个ConfigInit.ini文件

图3.2 写入ini文件的内容

图3.3 从ini文件读出的内容

图3.3中的结果可以从图3.2中可以看出,strName读取字段"StudentInfo1"中变量 “Name"的值为"张三”,Result读取字段"StudentInfo2"中变量 "Age"的值为28。

参考内容:

http://blog.csdn.net/aaronalan/article/details/6144393

http://bbs.csdn.net/topics/30394456

MFC读写ini配置文件(WritePrivateProfileString,GetPrivateProfileString,GetPrivateProfileInt)相关推荐

  1. MFC读写ini配置文件

    一.前言 MFC 读写配置文件,有三个核心函数,分别为WritePrivateProfileString和GetPrivateProfileString和GetPrivateProfileInt,下面 ...

  2. unicode 字符集环境下的mfc 读写 ini 配置文件的_WSL:在Windows下优雅地玩Linux

    本文作者:刘观宇,360 奇舞团高级前端工程师.技术经理,W3C CSS工作组成员. 引子 一直以来,Windows的命令行的体验都不是特别的友好.由于Windows以图形界面交互为主,同时微软在一段 ...

  3. C/C++ ini配置文件的格式及如何读写ini配置文件

    一.ini配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序 ...

  4. MFC操作ini配置文件

    MFC操作ini配置文件 概述       在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置.大小.一些用户设置的数据等等,在    ...

  5. C# 读写ini配置文件demo

    INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若 ...

  6. C# 读写ini配置文件

     C# 读写ini配置文件 一.简述  记--c#通过调用系统api接口进行简单读写ini配置文件. 例子打包:外链:https://wwa.lanzoui.com/b0c9nm3pa 密码:8maq ...

  7. python读取配置文件 分段_Python3读写ini配置文件的示例

    ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑. 配置文件的主要功能就是存储一批变量和变量值,在ini文件 ...

  8. C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()

    转自:http://hi.baidu.com/andywangcn/blog/item/10ba730f48160eeb37d122e9.html 配置文件中经常用到ini文件,在VC中其函数分别为: ...

  9. 【转载】C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()

    配置文件中经常用到ini文件,在VC中其函数分别为: #include <Windows.h> //wince,WMobile.ppc不支持这几个函数 写入.ini文件:bool Writ ...

最新文章

  1. saml java实现_java-saml
  2. ActiveRecord模式整理
  3. leetcode 1218 python
  4. 云时代架构读后感(十六)
  5. 服务器安装python虚拟环境
  6. msp430的常量可以这样定义
  7. iOS下Safari自动化测试
  8. KnockoutJS 实例
  9. 随机投影森林-一种近似最近邻方法(ANN)
  10. 最新席瓦莱恩服务器人口比例,2021魔兽世界怀旧服3月人口普查_最新怀旧服3月人口普查数据一览_3DM网游...
  11. Cygwin安装教程
  12. Linux下设置代理方法
  13. 计算机黑屏无法唤醒,联想笔记本睡眠中的黑屏无法唤醒,重启计算机或黑屏,该如何处理?...
  14. 戴尔笔记本怎么安装统信uos系统?戴尔笔记本安装统信uos+win双系统
  15. 学生个人网页设计作品 学生个人网页模板简单个人主页成品 个人网页制作 HTML学生个人网站作业设计
  16. vue z-index层级显示问题
  17. 请插入GemGPK智能卡解决办法。
  18. 大数据HBase在阿里搜索中的应用实践
  19. 基于行为模拟爆破C/S架构客户端程序的一些猜想实现
  20. maya批量操作mel_MAYA运行单个MEL命令方法图文介绍

热门文章

  1. java实现归并算法
  2. 航司的客户等级分类及价值分析
  3. 机器学习-白板推导-系列(五)笔记:降维(PCA/SVD/PCoA/PPCA)
  4. TP5框架实现两表联查
  5. php中取整的函数,PHP取整函数的具体使用方法介绍_PHP教程
  6. 概念物理Ⅱ 第一讲:绪论
  7. Ranger 和 Ranger Audit 审计功能模块介绍
  8. 计算机组成原理名词解释
  9. Java 包装类是什么
  10. matlab damp函数返回的值为什么有两行相同数据?