Pregunta

Estoy creando un motor de juego SDL C ++, y es relevante conocer la ruta del ejecutable ya que las imágenes y otros recursos no se almacenan dentro del ejecutable; están en una carpeta separada (" res / ").

En Linux, estoy usando un script de shell " rungame.sh " ese cd's a la ruta ejecutable y luego ejecuta el ejecutable (usando entonces " ./ " para hacer referencia a la carpeta ejecutable). Sin embargo, creo que este es un & "; Feo &"; enfoque y quiero que sea compatible con Windows.

Además, el enfoque actual no es muy bueno, ya que puede cambiar el significado de algunos argumentos de línea de comandos.

Quiero una solución multiplataforma (* NIX, Windows y Mac OS X, si es posible) para obtener la ruta actual del ejecutable. La ruta del juego / nombre del ejecutable puede cambiar.

¿Cuál es la forma más limpia de resolver mi problema (preferiblemente usando std :: string y la menor cantidad posible de API dependientes de la plataforma)?

¿Fue útil?

Otros consejos

Desde SDL 2.0.1 hay SDL_GetBasePath .

physicsfs tiene PHYSFS_getBaseDir() :

  

Obtenga la ruta donde reside la aplicación.

     

Función auxiliar.

     

Obtenga el " base dir " ;. Este es el directorio donde estaba la aplicación   ejecutar desde, que es probablemente el directorio de instalación, y puede o puede   no sea el directorio de trabajo actual del proceso.

     

Probablemente deberías usar el directorio base en tu ruta de búsqueda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top