WritePrivateProfileSectionW 函数 (winbase.h)
替换初始化文件中指定节的键和值。
语法
BOOL WritePrivateProfileSectionW(
[in] LPCWSTR lpAppName,
[in] LPCWSTR lpString,
[in] LPCWSTR lpFileName
);
参数
[in] lpAppName
在其中写入数据的节的名称。 此部分名称通常是调用应用程序的名称。
[in] lpString
要写入命名节的新键名称和关联值。 此字符串限制为 65,535 字节。
[in] lpFileName
初始化文件的名称。 如果此参数不包含文件的完整路径,该函数将在 Windows 目录中搜索该文件。 如果文件不存在并且 lpFileName 不包含完整路径,该函数将在 Windows 目录中创建该文件。
如果文件存在并使用 Unicode 字符创建,则函数会将 Unicode 字符写入文件。 否则,该函数使用 ANSI 字符创建文件。
返回值
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError。
言论
lpString 参数指向的缓冲区中的数据由一个或多个 null终止字符串组成,后跟最终 null 字符。 每个字符串具有以下形式:
键=字符串
WritePrivateProfileSection 函数不区分大小写;lpAppName 参数指向的字符串可以是大写字母和小写字母的组合。
如果没有节名称与 lpAppName 参数指向的字符串匹配,WritePrivateProfileSection 在指定的初始化文件的末尾创建节,并使用指定的键名称和值对初始化新节。
WritePrivateProfileSection 删除命名节的现有键和值,并将键名称和值插入 lpString 参数指向的缓冲区中。 该函数不会尝试关联旧密钥名称和新键名称;如果新名称以与旧名称不同的顺序显示,则与初始化文件中预先存在的键和值关联的任何注释都可能与不正确的键和值相关联。
此操作是原子操作;在写入信息时,不允许读取或写入指定初始化文件的操作。
系统保留最新注册表文件映射的缓存版本,以提高性能。 如果所有参数都 NULL,则该函数将刷新缓存。 当系统正在编辑文件的缓存版本时,编辑文件本身的进程将使用原始文件,直到清除缓存为止。
系统使用以下注册表项下定义的映射,将大多数 .ini 文件引用映射到注册表:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion IniFileMapping
如果应用程序修改系统组件初始化文件(如 Control.ini、System.ini和 Winfile.ini),则此映射可能会发生这种情况。 在这种情况下,函数会将信息写入注册表,而不是初始化文件;存储位置的更改对函数的行为没有影响。
配置文件函数使用以下步骤查找初始化信息:
- 在注册表中查找 IniFileMapping 键下初始化文件的名称。
- 查找由 lpAppName指定的节名称。 这是具有初始化文件名称的键下的命名值,或者具有此名称的子项,或者名称将不存在为值或子项。
- 如果由 lpAppName 指定的节名称是命名值,则该值指定注册表中将找到该节的键的位置。
- 如果由 lpAppName 指定的节名称是子项,则该子项下的命名值指定注册表中的哪些位置可以找到该节的键。 如果要查找的键不存在为命名值,则会有一个未命名的值(显示为“<无名称>”),用于指定注册表中可以找到该键的默认位置。
- 如果由 lpAppName 指定的节名称 不存在为命名值或子项,则会有一个未命名的值(显示为 <无名称>),用于指定注册表中的默认位置,可在其中找到分区的键。
- 如果没有分区名称的子项或条目,则查找磁盘上的实际初始化文件并读取其内容。
- ! - 此字符强制所有写入到注册表和磁盘上的 .ini 文件。
- # - 当新用户首次在安装后登录时,此字符将导致注册表值设置为 Windows 3.1 .ini 文件中的值。
- @ - 如果注册表中找不到请求的数据,则此字符可防止读取磁盘上的 .ini 文件。
- USR: - 此前缀代表 HKEY_CURRENT_USER,前缀后的文本相对于该键。
- SYS: - 此前缀表示 HKEY_LOCAL_MACHINE\SOFTWARE,前缀后的文本相对于该键。
注意
winbase.h 标头将 WritePrivateProfileSection 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | winbase.h (包括 Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |