備忘録

プログラミングの備忘録書いていきます

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へカレントディレクトリを獲得することができた。