1. ホーム
  2. c++

[解決済み] 実行ファイルのパスを取得する

2022-05-08 07:23:58

質問

この質問は以前にもされたことがあると思いますが、まだ満足のいく回答や、「できません」という決定的な回答を見たことがないので、もう一度質問します。

私がしたいことは、現在実行中の実行ファイルのパスを、プラットフォームに依存しない方法で、絶対パスまたは実行ファイルが呼び出された場所からの相対パスとして取得することだけです。boost::filesystem::initial_pathが私の問題に対する答えだと思いましたが、これは質問の「プラットフォーム非依存」の部分のみを扱うようで、アプリケーションが起動された場所のパスをまだ返します。

背景として、これはOgreを使用したゲームで、Very Sleepyを使用してプロファイルしようとしています。私は、設定ファイルへの絶対パスを渡せるようにしたいのですが、そのファイルは常に実行ファイルと一緒に存在することが分かっています。Visual Studioでデバッグするときも同じで、作業ディレクトリを設定せずに$(TargetPath)を実行できるようにしたいのです。

解決するには?

私が知る限りでは、クロスプラットフォームの方法はありません。

Linuxの場合。 リードリンク /proc/self/exe

Windowsです。 GetModuleFileName