Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Другие советы

Начиная с SDL 2.0.1, существует SDL_GetBasePath Путь к базе данных.

физические свойства имеет PHYSFS_getBaseDir():

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top