我正在创建一个C ++ SDL游戏引擎,因此知道可执行文件的路径非常重要,因为图像和其他资源没有存储在可执行文件中-它们位于单独的文件夹(“ res /”)中。
在Linux下,我使用cd到可执行文件路径的外壳脚本“ rungame.sh”,然后运行可执行文件(使用“ ./”引用可执行文件文件夹)。
但是,我认为这是一种“丑陋”的方法,我希望它与Windows兼容。
另外,当前的方法也不是很好,因为它可能会更改某些命令行参数的含义。
我想要一个跨平台(* NIX,Windows和Mac OS X,如果可能的话)解决方案来获取可执行文件的当前路径。游戏路径/可执行名称可能会更改。
解决问题的最干净方法是什么(最好使用std :: string和尽可能少的平台相关API)?
最佳答案
我强烈建议在发布前进行搜索:How do I get the directory that a program is running from?