일반 Console Application으로 프로그램을 개발할 때 실행 프로그램 자기 자신의 경로를 알아내기 위해서는 매개변수로 넘어오는 argv와 argc를 참조하면 된다. 다음 소스를 보자.

Print my file name (Language : c)
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char *argv[])
  4. {
  5.     printf ("%s\n", argv[0]);
  6.     return 0;
  7. }

 
위의 프로그램의 실행파일 이름이 "test.exe"라면, 위 프로그램을 실행시켰을 때 "test.exe"가 출력이 된다. 하지만 이 방법은 매개변수로 다른 값을 넘겨받는 WINAPI 프로그램에서는 사용할 수가 없다. 때문에 GetModuleFileName이라는 API 함수를 이용하여 자신의 파일 경로를 알아냈 수 있다.

Documentation 보기!


간단히 설명하자면 다음과 같다.
먼저 첫 번째 매개변수에는 Module의 핸들을 넣어주어야 하는데 일반적으로 NULL을 넘겨 주어도 무방하다. 두 번째 매개변수에는 파일 경로를 저장할 문자열 포인터를 넘겨준다. 세 번째 매개변수에는 두 번째로 넘겨 준 문자열의 길이를 넘겨준다.

실제 사용 예는 다음과 같다.

Example - GetModuleFileName (Language : c)
  1. char FullPath[255];
  2.  
  3. GetModuleFileName(NULL, FullPath, 255);

위 소스는 FullPath에 자신의 경로를 저장해 준다.

참고적으로, 첫 번째 방법은 실행파일명(ex - "test.exe")만을 알아낼 수 있지만, 두 번째 방법은 절대 경로(ex - "c:\test\test.exe")를 알아낼 수 있다.


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

Trackback :: http://harrys.co.kr/blog/lab/trackback/107

댓글을 달아 주세요

  1. 악마의BFSlog9시저주 2007/06/25 16:34  댓글주소  수정/삭제  댓글쓰기

    ....이 트랙백들 뭡니까?;;
    저 이 함수 Death 에 사용했었어요..ㅋㅋ

  2. sunni 2009/01/15 10:50  댓글주소  수정/삭제  댓글쓰기

    잘봤습니다. 퍼갈께요~

  3. carrot 2009/02/27 17:42  댓글주소  수정/삭제  댓글쓰기

    좋은 정보 감사합니다..^^

  4. 2009/05/11 11:25  댓글주소  수정/삭제  댓글쓰기

    관리자만 볼 수 있는 댓글입니다.

  5. ㅇㅇ 2009/10/16 14:07  댓글주소  수정/삭제  댓글쓰기

    링크달아갑니다