본문 바로가기
프로그래밍/C++

C++ ] 현재 실행중인 실행파일의 경로 얻기, GetModuleFileName

by eteo 2023. 9. 19.

 

 

 

Windows.h 를 포함하고 GetModuleFileName() 함수를 사용하면 현재 실행중인 실행파일의 path를 알 수있다.

 

GetModuleFileName는 유니코드를 사용하냐 ANSI를 사용하냐에 따라 GetModuleFileNameW 또는 GetModuleFileNameA로 정의된다.

 

 

wchar_t exePath[MAX_PATH];
GetModuleFileName(NULL, exePath, MAX_PATH);

wchar_t* folderPath = new wchar_t[wcslen(exePath) + 1];
wcscpy(folderPath, exePath);
wchar_t* lastBackslash = wcsrchr(folderPath, L'\\');
if (lastBackslash != NULL)
{
    *lastBackslash = L'\0';
}

 

 

MAX_PATH는 Windows 운영 체제에서 파일 경로 및 파일 이름의 최대 길이를 나타내는 상수로 260으로 정의되어 있다.

 

그리고 문자열에서 특정 문자의 위치를 뒤에서부터 찾는 strrchr 또는 _tcsrchr 또는 wcsrchr 함수를 같이 사용하면 실행파일이 포함된 폴더 경로 또는 확장자를 제외한 파일명까지의 경로 등을 얻을 수 있다.