我有一个相当大的 C++ 应用程序(在 Windows 上,没有计划其他平台),它当前将所有设置(甚至某种地址)存储在 Windows 注册表中。
有时这很不方便,因为用户很难更改注册表中的条目。我希望设置版本化,因此设置始终与当前代码匹配。目前我们对 reg 文件进行版本控制,但您永远无法确定是否所有 reg 文件都已添加到目标机器上。使用 C#,您可以在 app.config 中定义默认值,但不要覆盖现有设置。我不知道 C++ 是否存在这样的机制或库。
我想拥有以下“功能”:
- 设置可以版本化
- 目标机器上的简单更新(可由用户完成)
- 确保在更新时仅添加新设置,并且不使用默认值覆盖现有设置
- 为用户简单更改设置
- Win XP 和 Win 7 下的工作流程相同
据我所知,在 Windows 上存储设置有 3 种可能性:
- 登记处
- .ini文件
- XML 文件
目前我们套件中只有一个应用程序使用 Qt,但 Boost 将可用。
对于地址,我们会将它们放在某种 XML 通讯簿中,但对于其他设置,我们不确定,最好的做法是什么。