保存应用程序的配置信息

应用程序启动后,用户会有各种操作。当用户下一次启动应用程序时,就会希望保持上一次的操作状态。或者游戏结束后,需要将最高分记录等等。因此,我们需要在程序关闭的时候,将一些必要的变量保存下来,并且在下一次程序启动的时候,读取这些变量。

通常,可以把这些变量保存在“配置文件”中。配置文件一般以 .ini 为扩展名。例如在 \windows 文件夹里面可以找到很多 .ini 文件。.ini 文件的内容是纯文本的,可以直接双击打开编辑。举一个实际例子,下面是一个标准的 .ini 配置文件的内容:

;  范例
[Ball]
x=10
y=37
r=20
[Wall]
width=70
height=60

可以看到,配置文件的格式很简单,包括三种情况:

  1. 注释:写在半角分号后面;
  2. 节:用方括号括起来;
  3. 变量:用“键=值”这种形式记录,整形和字符串不做区分。

要读写这些配置值,可以使用 Windows API 函数,一些常用的相关 API 函数的原型如下:

// 写入字符串的配置值
BOOL WritePrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpString, LPCTSTR lpFileName);
参数含义:
lpAppName: 表示“节”
lpKeyName: 表示“键”
lpString: 表示“值”
lpFileName: 表示配置文件名
返回值:执行成功后返回非 0,否则返回 0。具体的错误原因可以通过 GetLastError 函数获取。 
// 读入整形的配置值
UINT GetPrivateProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nDefault, LPCTSTR lpFileName);
参数含义:
lpAppName: 表示“节”
lpKeyName: 表示“键”
nDefault: 表示没有找到指定“键”时,返回的默认“值”
lpFileName: 表示配置文件名
返回值:获取到指定键的整形值。如果没有获取到,返回 nDefault 指定的默认值。
// 读入字符串的配置值
DWORD GetPrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileName);
参数含义:
lpAppName: 表示“节”
lpKeyName: 表示“键”
nDefault: 表示没有找到指定“键”时,返回的默认“值”
lpReturnedString: 用于保存返回字符串值的缓冲区指针
nSize: 缓冲区的大小
lpFileName: 表示配置文件名
返回值:返回获取到的字符串的长度。

(以上三个函数的更详细介绍,以及更多的关于配置文件的 api,请参考 MSDN)

使用上很简单,举个例子:

// 在当前路径下的 test.ini 配置文件中,创建 [Ball] 节,并记录 x=30
WritePrivateProfileString(_T("Ball"), _T("x"), _T("30"), _T(".\\test.ini")); 
// 读取前面代码创建的键 x 的值。如果没找到,返回默认值 320
int age;
age = GetPrivateProfileInt(_T("Ball"), _T("x"), 320, _T(".\\test.ini"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值