2

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

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

  • 视窗:$APPDATA/realh/Bombz/config
  • 苹果电脑:$HOME/Library/Bombz/config
  • Linux 等:($HOME/.bombz/config或使用 XDG 规范)

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

4

1 回答 1

2

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

除此之外,如果您不想调用 SHGetKnownFolderPath(),那么环境变量是您唯一的选择。尽管就我自己而言,我什至不信任 Linux 上的 $HOME——我使用 getpwuid_r()。和 NSHomeDirectory() 在 MacOS 上。

于 2012-07-20T16:12:00.693 回答