GetPrivateProfileStruct函数检索与初始化文件给定部分中指定键相关联的数据。当它检索数据时,该函数计算校验和,并将其与数据添加到文件时由WritePrivateProfileStruct函数计算的校验和进行比较。
基于Win32的应用程序应该将初始化信息存储在注册表中。
BOOL GetPrivateProfileStruct(
LPCTSTR【lpszSection】, | //部分名称的地址 |
LPCTSTR【lpszKey】, | //键名称的地址 |
LPVOID【定义了与值名称一起使用的以下控制代码。】, | //返回缓冲区的地址 |
UINT【uSizeStruct】, | //返回缓冲区大小 |
LPCTSTR【szFile】 | //初始化文件名??的地址 |
); |
参数
【lpszSection】
指向包含初始化文件中的段名称的以null结尾的字符串。
【lpszKey】
指向包含要检索其数据的键名称的以null结尾的字符串。
【定义了与值名称一起使用的以下控制代码。】
指向接收与文件,部分和键名称相关联的数据的缓冲区。
【uSizeStruct】
指定由【定义了与值名称一起使用的以下控制代码。】参数指向的缓冲区的大小(以字节为单位)。
【szFile】
指向以空值终止的字符串,用于命名初始化文件。如果此参数不包含文件的完整路径,Windows将在Windows目录中搜索该文件。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。
备注
初始化文件中的一个部分必须具有以下形式:
[【section】]
【键】=【数据】
.
.
.
对私有配置文件功能的调用可能会映射到注册表而不是指定的初始化文件。如果应用程序修改系统组件初始化文件(如CONTROL.INI,SYSTEM.INI和WINFILE.INI),则可能会进行此映射。在这些情况下,GetPrivateProfileStruct函数从注册表中检索信息,而不是从初始化文件中检索;存储位置的变化对功能的行为没有影响。
Win32配置文件功能(Get/WriteProfile*,Get/WritePrivateProfile*)使用以下步骤来定位初始化信息:
1.在注册表中的初始化文件的名称,说myfile.ini,在IniFileMapping下:
HKEY_LOCAL_MACHINE\软件\微软\
Windows NT\CurrentVersion\IniFileMapping\myfile.ini
2.查看【lpAppName】指定的部分名称。这将是myfile.ini下的命名值,或myfile.ini的子项,否则将不存在。
3.如果由【lpAppName】指定的段名称是myfile.ini下的一个命名值,则该值指定注册表中的哪个位置可以找到该部分的密钥。
4.如果由【lpAppName】指定的部分名称是myfile.ini的子项,则该子项下的命名值将指定注册表中的哪个部分的键。如果您要查找的密钥不存在作为命名值,那么将会有一个未命名的值(显示为“< No Name >”),指定注册表中的默认位置,您将在其中找到密钥。
5.如果由【lpAppName】指定的部分名称不存在作为命名值或myfile.ini下的子项,则在myfile下将显示一个未命名的值(如“< No Name >”)) .ini,它指定注册表中的默认位置,您可以在其中找到该部分的键。
6.如果没有myfile.ini的子项,或者没有条目名称的条目,那么在磁盘上查找实际的myfile.ini并读取其内容。
当查看注册表中指定其他注册表位置的值时,有几个前缀可以更改ini文件映射的行为:
! - 这个字符强制所有的写入都到磁盘上的注册表和.INI文件。
# - 当新用户在安装后首次登录时,此字符会使注册表值设置为Windows 3.1 .INI文件中的值。
@ - 如果在注册表中找不到所请求的数据,则此字符可防止任何读取到磁盘上的.INI文件。
USR: - 此前缀代表HKEY_CURRENT_USER,前缀后面的文本与该键相关。
SYS: - 此前缀代表HKEY_LOCAL_MACHINE \\ SOFTWARE,前缀后的文本与该键相关。
也可以看看