我在 C++ 程序中遇到过术语
GetPrivateProfileString
。谁能给我简单解释一下这个功能的使用吗?
我页面上的代码是:
GetPrivateProfileString("files", "directory", "/mediadb/files/", directory, os.path.getsize(directory), "apache")
GetPrivateProfileString()
从 .ini 文件读取值。
早在 16 位 Windows 时代,它就是读写应用程序配置数据的方式。当时,应用程序将其配置存储在位于系统目录中的共享 .ini 文件中,称为 win.ini。糟糕的时光!
要从 win.ini 中读取,您调用了
GetProfileString()
。 GetPrivateProfileString()
中的私有表明这一事实:这个奇妙的函数允许您访问除 win.ini 之外的 .ini 文件,即您的应用程序私有的文件。如果我没记错的话(我的记忆很模糊),在官方不赞成这样做之后,大多数应用程序仍然使用 win.ini 多年。
碰巧
GetPrivateProfileString()
是一只令人难以置信的皱纹野兽,具有糟糕的性能特征和难以理解的奇怪之处。我个人像躲避瘟疫一样避免它,如果我必须处理 .ini 文件,我会使用定制代码来执行此操作。
Raymond Chen 有一篇不错的文章,介绍了为什么 .ini 文件被弃用而采用注册表。
它用于从.ini 文件中读取。这是一个旧的 win16 API。你不应该使用它。
来自 MSDN:
在初始化中从指定部分检索字符串 文件。
注意
提供此功能只是为了兼容16位 基于 Windows 的应用程序。应用程序应存储初始化 注册表中的信息。
语法
DWORD WINAPI GetPrivateProfileString(
__in LPCTSTR lpAppName,
__in LPCTSTR lpKeyName,
__in LPCTSTR lpDefault,
__out LPTSTR lpReturnedString,
__in DWORD nSize,
__in LPCTSTR lpFileName
);
这将从 .ini 文件中检索配置信息