現在実行している自分のファイル名を得る必要に迫られることがあります。それを知るまず一つ目の方法は、もし main 関数から実行していれば、argv[0] を見ることです。次の方法としては、GetCommandLine API を使ってコマンドラインを取得して、自分で先頭にあるファイル名を切り出すことです。argv[0] はこのコマンドラインから切り出した値がセットされています。さて、実は呼び出し元のプログラムのこのプログラムの起動のさせ方によってはここに挙げた方法ではうまく取得できないことがあります。そのようなことから、GetModuleFileName API を使った方がよいでしょう。サンプルを示します。
#define STRICT
#include <windows.h>
#include <stdio.h>
main()
{
CHAR path[MAX_PATH];
printf("%s\n", GetModuleFileName(NULL, path, sizeof(path)));
return 0;
}
|
by seclan