1

私は C++ SDL ゲーム エンジンを作成しています。画像やその他のリソースは実行可能ファイル内に保存されていないため、実行可能ファイルのパスを知ることが重要です。それらは別のフォルダー ("res/") にあります。

Linuxでは、実行可能パスにcdして実行可能ファイルを実行するシェルスクリプト「rungame.sh」を使用しています(「./」を使用して実行可能フォルダーを参照します)。ただし、これは「醜い」アプローチであると考えており、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

physicsfsには次のものがありますPHYSFS_getBaseDir()

アプリケーションが存在するパスを取得します。

ヘルパー関数。

「ベースディレクトリ」を取得します。これは、アプリケーションが実行されたディレクトリであり、おそらくインストール ディレクトリであり、プロセスの現在の作業ディレクトリである場合とそうでない場合があります。

おそらく、検索パスにはベース ディレクトリを使用する必要があります。

于 2009-07-30T19:28:43.473 に答える