文章目录
  1. 1. 文件格式
  2. 2. 操作
    1. 2.1. 写入 - WritePrivateProfileString
    2. 2.2. 读取数字 - GetPrivateProfileInt
    3. 2.3. 读取字符串 - GetPrivateProfileString
  3. 3. MSDN 文档

文件格式

ini 文件是一种纯文本格式的文件,通常用来保存程序设置。其结构如下

1
2
3
4
5
6
7
8
9
10
11
[appName1]
keyName11=value11
keyName12=value12
keyName13=value13
[appName2]
keyName21=value21
keyName22=value22
keyName23=value23
[appName3]
keyName31=value31
..........

appNamekeyName 通常在程序编写时就已经确定,我们只需读取对应的 value 即可。

操作

Windows 提供了一组 API 用来操作 ini 文件,API 最低系统支持 Windows 2000 Professional 或其服务器版。使用下面的代码前需要先 #include <windows.h>

写入 - WritePrivateProfileString

1
2
3
4
5
6
BOOL WINAPI WritePrivateProfileSection(
_In_ LPCTSTR lpAppName,
_In_ LPCTSTR lpKeyName,
_In_ LPCTSTR lpString,
_In_ LPCTSTR lpFileName
);

lpAppName 写入数据的节,C 风格字符串。
lpKeyName 写入数据的键,C 风格字符串。
lpString 写入到上面两个参数指定的位置的数据,C 风格字符串。
lpFileName 文件路径,C 风格字符串。
如果写入成功则返回非零值;如果写入失败则返回,可调用 GetLastError 获取更多有关错误的信息。

读取数字 - GetPrivateProfileInt

1
2
3
4
5
6
UINT WINAPI GetPrivateProfileInt(
_In_ LPCTSTR lpAppName,
_In_ LPCTSTR lpKeyName,
_In_ INT nDefault,
_In_ LPCTSTR lpFileName
);

lpAppName 读取数据的节,C 风格字符串。
lpKeyName 读取数据的键,C 风格字符串。
nDefault 默认值,如果未找到指定的键则返回这个值。
lpFileName 文件路径,C 风格字符串。
返回值为读取的结果,如果未找到指定的键则返回默认值。

读取字符串 - GetPrivateProfileString

1
2
3
4
5
6
7
8
DWORD WINAPI GetPrivateProfileString(
_In_ LPCTSTR lpAppName,
_In_ LPCTSTR lpKeyName,
_In_ LPCTSTR lpDefault,
_Out_ LPTSTR lpReturnedString,
_In_ DWORD nSize,
_In_ LPCTSTR lpFileName
);

lpAppName 读取数据的节,C 风格字符串。
lpKeyName 读取数据的键,C 风格字符串。
lpDefault 默认值,如果未找到指定的键则返回这个值,C 风格字符串。
lpReturnedString 接收结果的缓冲区,需确认缓冲区大小足够容纳读取的值。
nSize 接收结果的缓冲区大小,2 字节大的整数。
lpFileName 文件路径,C 风格字符串。
若读取成功则返回实际写入至缓冲区的字符个数;若读取失败则返回 nSize - 1nSize - 2

MSDN 文档

Registry Functions

文章目录
  1. 1. 文件格式
  2. 2. 操作
    1. 2.1. 写入 - WritePrivateProfileString
    2. 2.2. 读取数字 - GetPrivateProfileInt
    3. 2.3. 读取字符串 - GetPrivateProfileString
  3. 3. MSDN 文档