메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

C/C++/MFC

c/c++ 에서 main(int argc, char* argv[]) 처럼 메인함수를 정의하면 프로그램 실행할 때 인자를 넘겨줄 수 있다
인자 수는 argc
인자 값은 argv 에 저장된다.

 

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[]) {

  if (argc == 1) {
    printf("인자를 입력해 주세요\r\n");
  }
  else
  {
   printf("입력된 인자수 : %d 개\r\n", argc - 1);
   for (int i = 1; i < argc; i++)
     printf("%d 번째 인자 = %s\r\n", i, argv[i]); 
 
  }


  return 0;
}

 

 


MFC 에서는 몇가지 방법이 있다.

1.
App에 있는 InitInstance 함수를 찾아 보면
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
이런 부분이 있는데.
CCommandLineInfo 객체를 이용해서 실행시 전달받은 아규먼트를 받을수 있다.
ParseCommandLine을 호출하게 되면 m_lpCmdLine 에 아규먼트 값이 담기게 된다.

2.
ParseCommandLine 대신에 GetCommandLine() 이라는 함수를 사용

3. 전역변수로 선언된 __argc, __argv 를 이용하는 방법

기타)
윈도우 탐색기에서 *.doc 파일을 더블클릭하게 되면 MS-Word 가 실행되고
                          *.hwp 파일을 더블클릭하게 되면 한글이 실행되는데,
이때 연결되는 파일의 정보는 m_lpCmdLine에 담기게 된다.

<예제>

BOOL CacceptfileApp::InitInstance(){
    //  .......... 중략.............   
 CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
    AfxMessageBox("이 파일을 열겠다.");
    AfxMessageBox(m_lpCmdLine);
}

 

관련 문서가 검색되었습니다.
  1. [2013/06/20] 5명의 키를 읽어 들여 가장 큰 키와 작은 키를 구하는 프로그램을 작성하시오 by Question (12064) *1
  2. [2013/06/20] 배열 문제인데요 ㅠㅠ by Question (10800) *1
  3. [2013/05/29] 도구바, OrCAD Capture by WhiteAT (4184)
  4. [2013/05/10] C언어 문제좀 풀어주세요~ by Question (7511) *1
  5. [2013/04/25] AVR ATmega 128로 인터럽트를 이용한 LED를 점멸하는 방법 좀 알려주세요. by Question (11404) *3
  6. [2012/11/13] ZEO 모듈이란? by WhiteAT (6394)
  7. [2011/11/09] 난수 발생 srand() rand() by WhiteAT ()
  8. [2011/05/07] 문자열로 다이아몬드 모양 만들기 소스 by WhiteAT (18547)
  9. [2011/03/24] 소수점(float,double) 있는 십진수를 이진수로 변환 by WhiteAT (24264)
  10. [2011/03/23] C++, scanf 에서 float ,double사용하기 by WhiteAT (30681) *2