현재 프로세스의 경로가 필요할때는 아래의 함수를 사용하면 된다.
이 함수를 사용하기 위해서는 #include <shlwapi.h> 를 include 해줘야 한다.
char path[MAX_PATH] = { 0, };
GetModuleFileName( NULL, path, MAX_PATH) ;
이렇게 해주면 실행중인 프로세스의 전체경로와 파일명까지 가져온다.
여기서 경로만 필요할 경우에는 아래의 함수를 사용하면 된다.
PathRemoveFileSpec( path );
위와 같이 함수를 추가하면 path 배열에서 파일명만 제거하여 경로만 남게된다.
상대 경로를 사용할 수 없는 함수를 사용해야 할 경우는 얻어진 경로를 다음과 같이 사용하면 된다.
sprintf_s( angPath, MAX_PATH, "%s\\res\\test.jpg", path);
DWORD GetModuleFileName( HMODULE hModule, LPSTR lpFileName, DWORD nSize );
hModule : 경로를 가져올 프로세스의 HMODULE. NULL을 입력하면 현재 프로세스의 경로를 가져온다.
lpFileName : 가져온 경로를 저장할 배열(할당된 배열을 입력해야 된다)
nSize : lpFileName의 크기
hModule : 경로를 가져올 프로세스의 HMODULE. NULL을 입력하면 현재 프로세스의 경로를 가져온다.
lpFileName : 가져온 경로를 저장할 배열(할당된 배열을 입력해야 된다)
nSize : lpFileName의 크기
이 함수를 사용하기 위해서는 #include <shlwapi.h> 를 include 해줘야 한다.
char path[MAX_PATH] = { 0, };
GetModuleFileName( NULL, path, MAX_PATH) ;
이렇게 해주면 실행중인 프로세스의 전체경로와 파일명까지 가져온다.
여기서 경로만 필요할 경우에는 아래의 함수를 사용하면 된다.
BOOL PathRemoveFileSpec( LPSTR pszPath );
pszPath : 파일명을 제거할 경로를 가지고 있는 배열
pszPath : 파일명을 제거할 경로를 가지고 있는 배열
PathRemoveFileSpec( path );
위와 같이 함수를 추가하면 path 배열에서 파일명만 제거하여 경로만 남게된다.
상대 경로를 사용할 수 없는 함수를 사용해야 할 경우는 얻어진 경로를 다음과 같이 사용하면 된다.
sprintf_s( angPath, MAX_PATH, "%s\\res\\test.jpg", path);
'Programing > Windows' 카테고리의 다른 글
Visual C++ CLR 사용하기 (0) | 2009.06.30 |
---|---|
Com Library in C++ Builder - C++ 빌더에서 Com 라이브러리, .Net라이브러리 사용하는 방법 (0) | 2009.06.30 |
GUID <--> String 변환 (0) | 2009.06.16 |
Visual Studio 단축키 (0) | 2009.06.11 |
CString <--> char * 형변환 (0) | 2009.06.11 |