GetPrivateProfileString是Windows专用轻量INI读取API,仅支持ANSI编码和简单语法,需用绝对路径、避免特殊字符,并检查返回值防静默失败。

Windows 平台下,GetPrivateProfileString 是读取 INI 文件最轻量、最直接的 API,但它只在 Windows 上可用,且不支持 Unicode 路径或节名含方括号以外的特殊字符。
GetPrivateProfileString 基本用法和参数含义
这个函数从指定 INI 文件中读取某个 [section] 下的 key=value 字符串值。它本质是 ANSI 接口(GetPrivateProfileStringA),传入的路径、节名、键名、默认值都必须是 const char*(即窄字符串)。
关键参数顺序为:lpAppName(节名)、lpKeyName(键名)、lpDefault(未找到时返回的默认值)、lpReturnedString(接收结果的缓冲区)、nSize(缓冲区字节数)、lpFileName(INI 文件绝对或相对路径)。
常见误用点:
立即学习“C++免费学习笔记(深入)”;
- 把
lpFileName写成相对路径却没确保当前工作目录正确——建议一律用绝对路径,比如"C:\app\config.ini" - 传入的
lpReturnedString缓冲区太小,导致截断——至少预留 256 字节,或先调用一次获取长度(见下一条) - 节名或键名里有空格或特殊符号(如
My Key),INI 解析会失败——应避免,或改用其他配置格式
如何安全获取字符串长度并防止截断
GetPrivateProfileString 返回的是**实际写入缓冲区的字符数(不含结尾