我正在用 SDL 启动一个程序,它显然需要为文件系统加载资源。 我希望程序中的文件调用独立于平台。我最初的想法是定义一个基于系统类型在预处理器中定义的宏(我们称它为 PTH 路径),然后在使用它的程序中进行文件调用。 例如
SDL_LoadBMP(PTH("data","images","filename"));
将简单地转换为与文件系统相关的内容。
如果宏是执行此操作的可接受方式,那么此类宏会是什么样子(我如何检查正在使用的系统,在宏中连接字符串?)
如果不是,那么公认的做法是什么?
最佳答案
Boost Filesystem module可能是你最好的选择。它覆盖了路径上的“/”运算符,因此您可以执行诸如...
ifstream file2( arg_path / "foo" / "bar" );
关于c++ - 在C程序中抽象文件系统的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509617/