在c ++中是否存在存储数据库设置等配置的标准位置?只需使用xml文件?
需要Windows解决方案,但最好是独立于平台。
答案 0 :(得分:1)
结帐Boost Program Options。除了是任何语言中最好的命令行选项处理器之一外,它还支持使用类似INI的语法从文件中读取配置数据,并使用环境变量。它完全适用于它所说的:程序选项。但是,如果你有各种各样的配置或层次结构,你可能最好查看Boost属性树,它读取INI文件以及XML或JSON,如果你有一个非常大的配置,它可能更适合。
答案 1 :(得分:0)
答案 2 :(得分:0)
标准C ++只是一种语言,它除了语言本身之外什么都不知道。
您所要求的完全取决于您决定用于连接数据库的库或框架。没有标准库可以实现此目的。所以首先选择数据库,然后选择要连接的数据库,然后你将获得库文档中的配置信息。
答案 3 :(得分:0)
标准中没有任何内容,但Boost.Program_options是一个用于检索/存储配置的好库。
显然配置文件必须存储在正确的位置:如果它是每用户配置文件,在Windows上它将存储在%APPDATA%
1 目录中(通常在以你的应用程序命名的子目录),在Linux上的主目录下的一个点文件中。对于非特定于用户的配置文件,它们可以存储在Windows 1 上的“所有用户”应用程序数据文件夹中,以及Linux 2 上的/ etc下。
当然,您不会对这些路径进行硬编码,但是您将SHGetFolderPath使用适当的CSIDL值(如果您不关心Vista之前的兼容性,则使用SHGetKnownFolderPath) ,对于每用户设置为CSIDL_APPDATA
,对于所有用户通用的设置为CSIDL_COMMON_APPDATA
。
请注意,Linux上的/etc
只能由超级用户写入;我不记得Windows下的普通用户是否可以写“所有用户”配置文件。