是否有一个特殊的地方来存储标准c ++中的配置

时间:2011-05-15 23:03:26

标签: c++ visual-c++

在c ++中是否存在存储数据库设置等配置的标准位置?只需使用xml文件?

需要Windows解决方案,但最好是独立于平台。

4 个答案:

答案 0 :(得分:1)

结帐Boost Program Options。除了是任何语言中最好的命令行选项处理器之一外,它还支持使用类似INI的语法从文件中读取配置数据,并使用环境变量。它完全适用于它所说的:程序选项。但是,如果你有各种各样的配置或层次结构,你可能最好查看Boost属性树,它读取INI文件以及XML或JSON,如果你有一个非常大的配置,它可能更适合。

答案 1 :(得分:0)

我不知道标准,但您有多个用于程序配置的库,例如libconfig。此外,Windows API还有一些实用程序来解析程序的INI文件,例如,请参阅this link

答案 2 :(得分:0)

标准C ++只是一种语言,它除了语言本身之外什么都不知道。

您所要求的完全取决于您决定用于连接数据库的库或框架。没有标准库可以实现此目的。所以首先选择数据库,然后选择要连接的数据库,然后你将获得库文档中的配置信息。

答案 3 :(得分:0)

标准中没有任何内容,但Boost.Program_options是一个用于检索/存储配置的好库。

显然配置文件必须存储在正确的位置:如果它是每用户配置文件,在Windows上它将存储在%APPDATA% 1 目录中(通常在以你的应用程序命名的子目录),在Linux上的主目录下的一个点文件中。对于非特定于用户的配置文件,它们可以存储在Windows 1 上的“所有用户”应用程序数据文件夹中,以及Linux 2 上的/ etc下。


  1. 当然,您不会对这些路径进行硬编码,但是您将SHGetFolderPath使用适当的CSIDL值(如果您不关心Vista之前的兼容性,则使用SHGetKnownFolderPath) ,对于每用户设置为CSIDL_APPDATA,对于所有用户通用的设置为CSIDL_COMMON_APPDATA

  2. 请注意,Linux上的/etc只能由超级用户写入;我不记得Windows下的普通用户是否可以写“所有用户”配置文件。