GetPrivateProfileString的目的是什么?

smu*_*urf 4 c++ windows winapi function

GetPrivateProfileString在C++程序中遇到过这个术语.有人能给我一个关于这个功能使用的简单解释吗?

我页面上的代码是:

GetPrivateProfileString("files", "directory", "/mediadb/files/", directory, os.path.getsize(directory), "apache")
Run Code Online (Sandbox Code Playgroud)

Dav*_*nan 14

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

回过头来,在16位Windows的时代,它是读取和编写应用程序配置数据的方式.当时应用程序将其配置存储在一个共享的.ini文件中,该文件位于系统目录中,名为win.ini.艰难时期!

要从win.ini读取你打电话GetProfileString().private in GetPrivateProfileString()表示这个奇妙的功能允许您访问win.ini以外的.ini文件,即一个私有的应用程序.如果我没记错的话(我的记忆很朦胧),大多数应用程序在使用win.ini多年后才被正式不赞成.

碰巧这GetPrivateProfileString()是一个令人难以置信的皱纹兽,具有可怕的性能特征和难以理解的怪异.我个人避免它像瘟疫一样,如果我必须处理.ini文件,我使用定制代码来做到这一点.

Raymond Chen有一篇很好的文章,关于为什么.ini文件被弃用以支持注册表.

  • +1不是简单地从MSDN复制粘贴.但我认为`GetPrivateProfileString()`实际上是从应用程序的私有.ini文件中读取的.你正在谈论的那个从常见的Win.ini文件读取的是`GetProfileString()`. (3认同)
  • 我不同意这个功能只是一个16位Windows的遗物,也不是一个难以理解的古怪的皱纹兽.实际上,这很容易理解.我不建议将它用于更好的方法,但它仍然是Win32 API的受支持成员,并且仍然完全按照文档中的描述运行.它比称为注册表的真正皱纹的野兽有一些好处,它实际上不仅仅是win.ini的闪亮版本.现实是,.ini文件只是今天.net所青睐的.config文件的简单版本. (3认同)
  • +1非常感谢您的时间和耐心@David Heffernan !! (2认同)
  • 是什么让 GetPrivateProfileString 成为一个令人难以置信的皱巴巴的野兽?我真的很感兴趣。对于大多数应用程序,我看不出性能特征有什么关系……应用程序配置通常不是瓶颈……(显然,INI 文件本身有很多缺陷,正如 Raymond Chen 在 http://blogs 中概述的那样.msdn.com/b/oldnewthing/archive/2007/11/26/6523907.aspx - 但这些看起来像是 INI 格式缺陷,而不是 GetPrivateProfileString 实现的皱纹。) (2认同)