简单的跨平台设置管理器

时间:2012-07-20 15:46:11

标签: c++ application-settings user-profile

我正在编写一个名为Bombz的跨平台游戏(用C ++编写),我需要一种方法来读/写用户的设置等,其中还包括已完成哪些级别的记录。像ini文件解析器这样的东西会很好,并且它并不需要高效和/或可扩展 - 我可以在启动时读取所有设置,而不是动态查找命名键。

我找到了一些简单的ini文件解析器,但他们忽略了存储文件的位置的问题,看起来我可能必须自己编写所有这些东西。我应该使用类似的东西:

  • Windows:$APPDATA/realh/Bombz/config
  • Mac:$HOME/Library/Bombz/config
  • Linux等:$HOME/.bombz/config(或使用XDG规范)

我用$HOME查找$APPDATAgetenv()?我知道在Windows中有“更好的批准”的方式来查找它,但我是一个Linux人员,我不想直接处理Windows API。

1 个答案:

答案 0 :(得分:2)

嗯,这很有趣 - 有人试图在不调用操作系统功能的情况下编写游戏。相当挑战。

除此之外,如果您不想调用SHGetKnownFolderPath(),那么环境变量是您唯一的选择。虽然对我自己来说,我甚至不相信Linux上的$ HOME - 我使用getpwuid_r()。和MacOS上的NSHomeDirectory()。