Определить исполняемую папку из SDL - PullRequest
0 голосов
/ 26 января 2009

Я создаю игровой движок C ++ SDL, и важно знать путь к исполняемому файлу, поскольку изображения и другие ресурсы не хранятся в исполняемом файле - они находятся в отдельной папке ("res /").

В Linux я использую сценарий оболочки "rungame.sh", который переписывает путь к исполняемому файлу, а затем запускает исполняемый файл (используя затем "./" для ссылки на исполняемую папку). Однако я считаю, что это «уродливый» подход и хочу, чтобы он был совместим с Windows.

Кроме того, текущий подход не очень хорош, поскольку он может изменить значение некоторых аргументов командной строки.

Я хочу кроссплатформенное (* NIX, Windows и Mac OS X, если возможно) решение для получения текущего пути к исполняемому файлу. Путь к игре / имя исполняемого файла могут измениться.

Каков самый чистый способ решения моей проблемы (желательно с использованием std :: string и как можно меньшего количества зависимых от платформы API)?

Ответы [ 3 ]

2 голосов
/ 23 сентября 2014

Начиная с SDL 2.0.1 SDL_GetBasePath .

1 голос
/ 26 января 2009

Я настоятельно рекомендую поискать перед публикацией: Как получить каталог, из которого запускается программа?

0 голосов
/ 30 июля 2009

физика имеет PHYSFS_getBaseDir():

Получить путь, по которому находится приложение.

Вспомогательная функция.

Получить "базовый каталог". Это каталог, где было приложение запустить из, который, вероятно, каталог установки, и может или может не быть текущим рабочим каталогом процесса.

Возможно, вам следует использовать базовый каталог в вашем пути поиска.

...