※ ChatGPTを利用し、要約された質問です(原文:カレントディレクトリの取得について)
カレントディレクトリの取得について
このQ&Aのポイント
ゲームを作るにあたり、実行ファイルのフルパスが必要です。
GetCurrentDirectory関数を使ってパスを取得しましたが、取得結果が正しくありません。
バッファのサイズや取得方法に問題がある可能性があります。どうすれば正しく取得できるでしょうか?
ゲームを作るのに、実行ファイルのフルパスが必要となりました。
「GetCurrentDirectory」を使ってパスを取得したのですが、
取得できたパスは、
「sers\NewChallenger\~(中略)~\GameData」
となってしまいます。
あたまの「sers」は「Users」で、本来なら、
「C:\Users\NewChallenger\~(中略)~\GameData」
となるはずなのですが。
取得に際しては、
char path[_MAX_PATH];
GetCurrentDirectory( _MAX_PATH, path );
というごく単純なことしかしていません。
このあと、バッファのサイズが小さすぎてところてん式に前の方が消えているのかと思い、
「_MAX_PATH」を「1000」として試してみたのですが、結果は変わらず。
いったい何が起こっているのでしょうか?
どうすれば正しく取得できるのでしょうか?
お礼
解決しました。 というか原因は関数の使い方ではなくて、 リリースビルドでブレークポイントを置いて、変数pathの中をのぞいていたから、表示がおかしくなっていたようです。 デバッグビルドだと正しくパスが取得されていることが確認できました。 とはいえ、「GetFullPathName」の方が、 任意のファイル/フォルダが何処にあるのか見つけられるので、使い勝手も良いです。 教えていただいて、問題解決に力を貸していただいて、ありがとうございました。