c++ win32如何存储持久数据

c++ win32 how to store persistent data

本文关键字:数据 存储 win32 何存储 c++      更新时间:2023-10-16

我正在开发一个c++ win32应用程序,我想实现持久存储到它。我知道我可以使用文件系统或数据库或注册表,但是存储a:

的最佳方式是什么呢?
 boolean
 unsigned int
 wchar_t [256]
 boolean [15]

我只需要在应用程序启动和关闭时从存储中读取/写入。

这是一个用户级应用程序,数据应该按用户存储。我想存储应用程序首选项(跟踪栏位置,一些设置,运行次数,…),这样就不需要导入/导出设置和故障排除。

哪种存储方法最适合这种类型的数据?

我认为在Windows上编写设置最简单的方法是将它们放在注册表中。对于特定于用户的设置,您将在HKEY_CURRENT_USER部分中编写。下面是Win32 API中注册表访问函数的完整列表。

如果您考虑将来需要将您的应用程序移植到其他平台,那么您可能需要考虑一个更跨平台友好的解决方案。我在我的应用程序中所做的是用Unix的方式编写设置,在用户的主目录中有一个设置文件。这样做的额外好处是,您可以使用基于文本的格式,您(或您的用户)可以在必要时进行编辑,例如,您可以使用WritePrivateProfileString或类似的API调用将其编写为古老的.ini格式。请注意,在Windows上,应用程序不会直接在主目录中写入设置文件,这些文件通常放在"AppData"用户特定的文件夹中。可通过调用SHGetFolderPath函数获取该文件夹的路径

最简单的解决方案是将信息存储在用户APPDATA路径下的.ini文件中。

只考虑序列化/protobuffer: http://code.google.com/p/protobuf/在这里写入应用程序

的用户特定路径