Sim*_*mon 11 c++ settings visual-c++
我有一个相当大的C++应用程序(在Windows上,没有计划其他平台),它目前存储Windows注册表中的所有设置(甚至某种地址).
有时这很不方便,因为用户在更改注册表中的条目时遇到困难.我想设置版本,因此设置始终与当前代码匹配.目前我们对reg-files进行了版本控制,但是如果所有的reg文件都已添加到目标计算机上,那么您永远不会确定.使用C#,您可以在app.config中定义默认值,但不要覆盖现有设置.我不知道,如果C++存在这样的机制或库.
我想拥有以下"功能":
据我所知,在Windows上存储设置有3种可能性:
我们套件中只有一个应用程序目前使用Qt,但Boost可用.
对于地址,我们会将它们放在某种XML地址簿中,但对于其他设置,我们不确定,最佳做法是什么.
如评论所述,基于树的键/值结构是一种常见的解决方案,并且易于查找库。
Boost的property_tree是一个绝佳的选择,因为它经过了充分的测试,可以轻松导出为XML或JSON。
关于您的要求:
- 设置可以版本化
是! 将“版本”设置为顶级键。使其易于与其他版本进行比较。
您还可以将设置分类到各个树节点中,并为每个节点提供一个版本。
- 在目标机器上的简单更新(可由用户完成)
让您的应用程序在运行时执行此操作。见下文。
- 确保更新时仅添加新设置,并且不使用默认值覆盖现有设置
- 简单更改用户设置
- 在Win XP和Win 7下相同的工作流程
随着设置从一个版本更改为另一个版本,通常这些更改分为三类。需要新属性,废弃旧设置,并且某些设置会更改其预期格式。例如,“ 32华氏度”变为“ 0摄氏度”
应用程序初始化时:
您的“缺少设置”功能可以:
| 归档时间: |
|
| 查看次数: |
8012 次 |
| 最近记录: |