1

我正在创建一个 C++ SDL 游戏引擎,并且了解可执行文件路径是相关的,因为图像和其他资源不存储在可执行文件中 - 它们位于单独的文件夹(“res/”)中。

在 Linux 下,我使用一个 shell 脚本“rungame.sh”,它 cd 到可执行文件路径,然后运行可执行文件(然后使用“./”来引用可执行文件夹)。但是,我相信这是一种“丑陋”的方法,我希望它与 Windows 兼容。

此外,当前的方法不是很好,因为它可能会改变某些命令行参数的含义。

我想要一个跨平台(*NIX、Windows 和 Mac OS X,如果可能的话)解决方案来获取可执行文件的当前路径。游戏路径/可执行文件名称可能会改变。

解决我的问题的最简洁方法是什么(最好使用 std::string 和尽可能少的平台相关 API)?

4

3 回答 3

5

从 SDL 2.0.1 开始,就有了 SDL_GetBasePath

于 2014-09-23T03:53:23.793 回答
1

我强烈建议在发布之前搜索:如何获取程序运行的目录?

于 2009-01-26T14:20:04.423 回答
0

physicsfsPHYSFS_getBaseDir()

获取应用程序所在的路径。

辅助功能。

获取“基本目录”。这是运行应用程序的目录,可能是安装目录,可能是也可能不是进程的当前工作目录。

您可能应该在搜索路径中使用基本目录。

于 2009-07-30T19:28:43.473 回答