我正在开发一个c ++ win32应用程序,我想在其中实现持久存储。我知道我可以使用文件系统或数据库或注册表,但最好的方法是存储:
boolean
unsigned int
wchar_t [256]
boolean [15]
只有在应用程序启动和关闭时才需要从存储中读/写。
这是一个用户级应用程序,应按用户存储数据。我想存储应用程序首选项(轨迹栏位置,一些设置,运行次数......),因此无需导入/导出设置和故障排除。
哪种存储方法最适合此类数据?
答案 0 :(得分:4)
我认为在Windows上编写设置的最简单方法是将它们放在注册表中。对于特定于用户的设置,您将在HKEY_CURRENT_USER部分中进行编写。 Here是Win32 API中注册表访问函数的完整列表。
如果您认为自己需要将应用程序移植到其他平台,那么您可能需要查看更加跨平台的友好解决方案。我在我的应用程序中所做的是用Unix方式编写设置,并在用户的主目录中设置一个设置文件。这样做的另一个好处是,您可以使用您(或您的用户)可以根据需要编辑的基于文本的格式,例如,您可以使用WritePrivateProfileString或类似的API调用以古老的.ini格式编写它。请注意,在Windows上,应用程序不直接在主目录中写入设置文件,这些文件通常位于“AppData”用户特定文件夹中。您可以通过调用SHGetFolderPath函数获取此文件夹的路径。
答案 1 :(得分:3)
最简单的解决方案是将信息存储在用户.ini file下的APPDATA path中。
答案 2 :(得分:0)
只考虑序列化/ protobuf:http://code.google.com/p/protobuf/ 在哪里写入应用程序的某些用户特定路径