getPrivateProfileStruct 函数 (winbase.h)
检索与初始化文件的指定节中的键关联的数据。 在检索数据时,函数计算校验和,并将其与将数据添加到文件时 由 WritePrivateProfileStruct 函数计算的校验和进行比较。
注意 提供此函数只是为了与基于 16 位 Windows 的应用程序兼容。 应用程序应在注册表中存储初始化信息。
语法
BOOL GetPrivateProfileStruct(
[in] LPCTSTR lpszSection,
[in] LPCTSTR lpszKey,
[out] LPVOID lpStruct,
[in] UINT uSizeStruct,
[in] LPCTSTR szFile
);
参数
[in] lpszSection
初始化文件中节的名称。
[in] lpszKey
要检索其数据的密钥的名称。
[out] lpStruct
指向缓冲区的指针,该缓冲区接收与文件、节和键名称关联的数据。
[in] uSizeStruct
lpStruct 参数指向的缓冲区的大小(以字节为单位)。
[in] szFile
初始化文件的名称。 如果此参数不包含文件的完整路径,则系统会在 Windows 目录中搜索该文件。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。
注解
初始化文件中的 节必须具有以下格式:
[section]
key=data
.
.
.
系统使用以下注册表项下定义的映射将大多数 .ini 文件引用映射到注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
如果应用程序修改系统组件初始化文件(例如 Control.ini、System.ini 和 Winfile.ini),则此映射很可能。 在这些情况下, 函数从注册表检索信息,而不是从初始化文件中检索信息;存储位置的更改不会影响函数的行为。
配置文件函数使用以下步骤查找初始化信息:
- 在注册表中查找 IniFileMapping 下的初始化文件的名称,例如 MyFile.ini。
- 查找 由 lpAppName 指定的节名称。 这是 myfile.ini下的命名值,或者是 myfile.ini子项, 或 将不存在。
- 如果 由 lpAppName 指定的节名称是 myfile.ini下的命名值,则该值指定在注册表中查找该节的键的位置。
- 如果 由 lpAppName 指定的节名称是 myfile.ini的子项,则该子项下的命名值指定在注册表中查找该节的项的位置。 如果要查找的项没有作为命名值存在,则 (<显示为“无名称> ”) ,该值指定在注册表中查找项的默认位置。
- 如果 lpAppName 指定的节名称不作为命名值或 myfile.ini下的子项存在,则 (myfile.ini下的未命名值显示为 <“无名称>) ”,指定注册表中可在其中找到分区键的默认位置。
- 如果没有 myfile.ini 子项,或者不包含节名称的条目,请在磁盘上查找实际 MyFile.ini 并读取其内容。
- ! - 此字符强制所有写入操作同时转到注册表和磁盘上的 .ini 文件。
- # - 当新用户在安装后首次登录时,此字符会导致注册表值设置为 Windows 3.1 .ini 文件中的值。
- @ - 如果注册表中找不到请求的数据,此字符可防止任何读取操作转到磁盘上的 .ini 文件。
- USR: - 此前缀代表 HKEY_CURRENT_USER,前缀后面的文本相对于该键。
- SYS: - 此前缀代表 HKEY_LOCAL_MACHINE\SOFTWARE,前缀后面的文本相对于该键。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |