GetPrivateProfileString 的用途是什么?

问题描述 投票:0回答:4

我在 C++ 程序中遇到过术语

GetPrivateProfileString
。谁能给我简单解释一下这个功能的使用吗?

我页面上的代码是:

GetPrivateProfileString("files", "directory", "/mediadb/files/", directory, os.path.getsize(directory), "apache")
c++ windows winapi function
4个回答
22
投票

GetPrivateProfileString()
从 .ini 文件读取值。

早在 16 位 Windows 时代,它就是读写应用程序配置数据的方式。当时,应用程序将其配置存储在位于系统目录中的共享 .ini 文件中,称为 win.ini。糟糕的时光!

要从 win.ini 中读取,您调用了

GetProfileString()
GetPrivateProfileString()
中的私有表明这一事实:这个奇妙的函数允许您访问除 win.ini 之外的 .ini 文件,即您的应用程序私有的文件。如果我没记错的话(我的记忆很模糊),在官方不赞成这样做之后,大多数应用程序仍然使用 win.ini 多年。

碰巧

GetPrivateProfileString()
是一只令人难以置信的皱纹野兽,具有糟糕的性能特征和难以理解的奇怪之处。我个人像躲避瘟疫一样避免它,如果我必须处理 .ini 文件,我会使用定制代码来执行此操作。

Raymond Chen 有一篇不错的文章,介绍了为什么 .ini 文件被弃用而采用注册表。


2
投票

用于从.ini 文件中读取。这是一个旧的 win16 API。你不应该使用它。


1
投票

来自 MSDN:

在初始化中从指定部分检索字符串 文件。

注意

提供此功能只是为了兼容16位 基于 Windows 的应用程序。应用程序应存储初始化 注册表中的信息。

语法

DWORD WINAPI GetPrivateProfileString(
  __in   LPCTSTR lpAppName,
  __in   LPCTSTR lpKeyName,
  __in   LPCTSTR lpDefault,
  __out  LPTSTR lpReturnedString,
  __in   DWORD nSize,
  __in   LPCTSTR lpFileName
);

1
投票

这将从 .ini 文件中检索配置信息

© www.soinside.com 2019 - 2024. All rights reserved.