我有一个相当大的C++应用程序(在Windows上,没有其他平台计划),它目前存储Windows注册表中的所有设置(甚至某种地址)。存储设置的最佳做法
有时这很不方便,因为用户在更改注册表中的条目时遇到困难。我想设置版本,所以设置总是匹配当前的代码。目前我们版本的reg文件,但你永远不知道,如果所有reg文件已被添加到目标机器上。使用C#,您可以在app.config中定义默认值,但不要覆盖现有设置。我不知道,如果这样的机制或库存在C++。
我想有下面的“功能”:
- 设置可以版本在目标计算机上
- 简单的更新(可以由用户完成)
- 确保在更新只新设置被添加并且没有现有设置被覆盖默认值
- 简单更改用户设置
- Win XP和Win 7下的相同工作流程
至于我看到,有3种可能性来存储Windows设置:
- 注册
- INI文件
- XML文件中,只有
一个应用我们套件目前使用Qt,但Boost将可用。
对于地址,我们会将它们放在某种XML地址簿中,但对于我们不确定的其他设置,最佳做法是什么。
我建议其他替代方案:YAML/JSON的人可读格式,用于简单嵌入的SQLite。关于'ini'文件,你可能会对[如何用Boost解析ini文件]感兴趣[(http://stackoverflow.com/questions/6175502/how-to-parse-ini-file-with-boost))。 –
+1为Boost/ini文件,如果你可以KI那个SS。 – DevSolar
如果你需要多层包含,我会去XML/JSON文件。否则,INI可能是最简单的解决方案。 – Morwenn