実行可能ファイルと同じディレクトリにあるいくつかのリソースを使用する C プログラムがあります。ランダムな作業ディレクトリ (プログラムが配置されているディレクトリではない) からプログラムを実行すると、コードで使用する相対パスが実行可能ファイルのパスではないため、リソースが読み込まれません。どうすればこれをうまく解決できますか?
2263 次
2 に答える
3
リソースを含むディレクトリのパスを引数としてプログラムに渡し、次のいずれかを行います。
- プロセスの現在のディレクトリをディレクトリに変更します (
chdir()
Unix およびSetCurrentDirectory()
Windows の場合)、または - リソースへの絶対パスを構築する
Windowsの場合、質問のコメントが示唆するように、exe
usingのパスを取得しGetModuleFileName()
、そこからディレクトリを抽出して、プログラムに引数を提供する必要を回避できます。次に、リストされている 2 つのオプションのいずれかを使用すると、プログラムをどこからでも実行でき、リソースを見つけることができます。
于 2012-09-18T16:56:16.033 に答える