c++ - Windows 注册表有哪些替代方案可用于存储软件配置设置

标签 c++ mfc registry

<分区>

我有一个 C++ MFC 应用程序,它将其所有系统范围的配置设置存储到注册表中。以前,我们使用 .INI 文件,几年前改用注册表使用

SetRegistryKey("MyCompanyName");

我们现在会定期收到来自用户的支持电话,他们难以从 PC 和 Windows 版本迁移到另一个版本,我得出的结论是使用注册表导致的问题比它解决的问题多得多。我不是特别想回到 .INI 文件,因为我想存储每个用户的设置,所以计划是编写我自己版本的 GetProfile... 和 SetProfile... 函数来处理数据库。有没有人已经这样做了,有没有人知道现有的用于注册表使用的替换库不需要太多代码修改?理想情况下,我还希望它具有从注册表中读取初始值的选项,以支持现有用户。

最佳答案

Boost 有一个名为 Boost.PropertyTree 的库将设置抽象为层次结构。它可以序列化为多种格式,例如 XML、JSON 和 INI。

将这些文件存储在 %APPDATA% 中。将它们存储在与可执行文件相同的目录中并不是一个好主意,因为 %PROGRAMFILES% 从 XP 开始对于普通用户来说是不可写的。

关于c++ - Windows 注册表有哪些替代方案可用于存储软件配置设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2297363/

相关文章:

windows - OpenWithProgIds 注册表项的用途是什么?

c++ - 如何使用weak_ptr打破shared_ptr循环引用

c++ - xiAPI : Failed to change thread scheduler, 检查实时优先级的用户限制

c++ - 从 mfc 对话框应用程序读取和写入 xml 文档

MFC 应用程序在关闭时崩溃

mysql - 如何使用 MFC ODBC 在 MySQL 中存储图像?

c# - 如何检测和管理由加载的 DLL 执行的磁盘/注册表/网络事件?

c++ ShellExecute "open"在已经打开的窗口中

c++ - 如何使用 const InputIterators 为通用容器编写函数?

windows - 确定脱机磁盘镜像的 Windows 版本、版本和服务包