【发布时间】:2011-06-28 16:12:53
【问题描述】:
我正在 SDL 中启动一个程序,它显然需要为文件系统加载资源。 我希望程序中的文件调用与平台无关。我最初的想法是根据系统类型在预处理器中定义一个宏(我们将其称为路径的 PTH),然后在使用它的程序中进行文件调用。 例如
SDL_LoadBMP(PTH("data","images","filename"));
将简单地转换为与文件系统相关的内容。
如果宏是执行此操作的公认方式,那么此类宏会是什么样子(如何检查正在使用的系统,在宏中连接字符串?)
如果不是,那么可接受的执行方式是什么?
【问题讨论】:
-
您是在寻找独立于文件系统类型(例如 ext3、ReiserFS、btrfs)还是独立于平台(例如 Windows 和 Mac 和 Linux)
-
除非有一些我不知道的警告,即从外来文件系统调用文件而不是仅使用标准 Unix 路径,否则我会说平台无关。
-
我认为,一个宏可以在两者上都起作用,就像预处理器确定的斜杠交换函数一样。这很丑陋,但显然并非不可能,所以我宁愿为两者都有一个解决方案。
-
@Scribble:它们是两种不同的语言。无论您预先假设什么解决方案,可用的解决方案在它们之间会有很大差异。请选择一个。
-
答案中都给出了相关的解决方案,所以我相信没有理由选择。不过感谢您的意见。
标签: c++ c filesystems abstraction