'argc'에 해당되는 글 1건

  1. 2007/06/24 GetModuleFileName - 파일 실행 경로 알아내기 (6)

일반 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