我正在编写一个名为Bombz的跨平台游戏(用C ++编写),我需要一种方法来读/写用户的设置等,其中还包括已完成哪些级别的记录。像ini文件解析器这样的东西会很好,并且它并不需要高效和/或可扩展 - 我可以在启动时读取所有设置,而不是动态查找命名键。
我找到了一些简单的ini文件解析器,但他们忽略了存储文件的位置的问题,看起来我可能必须自己编写所有这些东西。我应该使用类似的东西:
$APPDATA/realh/Bombz/config
$HOME/Library/Bombz/config
$HOME/.bombz/config
(或使用XDG规范)我用$HOME
查找$APPDATA
或getenv()
?我知道在Windows中有“更好的批准”的方式来查找它,但我是一个Linux人员,我不想直接处理Windows API。
答案 0 :(得分:2)
嗯,这很有趣 - 有人试图在不调用操作系统功能的情况下编写游戏。相当挑战。
除此之外,如果您不想调用SHGetKnownFolderPath(),那么环境变量是您唯一的选择。虽然对我自己来说,我甚至不相信Linux上的$ HOME - 我使用getpwuid_r()。和MacOS上的NSHomeDirectory()。