MFC カレントディレクトリの取得
カレントディレクトリを取得して初期設定ファイルを置こうとした時に少し詰まったのでメモ。
"GetModuleFileName"を使ってみるが実行ファイル名まで取得できてしまう。そこからパスを分割して実行ファイル名を消して~でディレクトリ取得することも考えたけどもう少し簡単な方法がないかとパス。
"GetCurrentDirectory"だとなぜか想定していたディレクトリが取れなくて断念。
色々試した結果、"GetModuleFileName"で実行ファイル名までのパスを取得して"PathRemoveFileSpce"を使ってファイル名を切れることが分かったので実装。
TCHAR dirpath[256]; // 第1引数をNULLにすることで実行ファイルの完全パスをdirpathへ格納 // ex.D:\workspace\test.exe if(GetModuleFileName(NULL, dirpath, 256)) { // 取得したパスからファイル名を削除 ex.D:\workspace PathRemoveFileSpec(dirpath); }
dirpathへカレントディレクトリを獲得することができた。