2009-06-05 7 views
3

MFC 애플리케이션에 명령 행 인터페이스를 추가하여 명령 행 매개 변수를 제공하고 싶습니다. 이 매개 변수는 응용 프로그램 시작 방법을 구성합니다.MFC와 명령 행 인터페이스하기

그러나이 두 인터페이스를 연결하는 방법을 알 수 없습니다. 가능하다면 어떻게이 일을 할 수 있습니까?

답변

8

MFC에는이를 수행하기위한 CCommandLineInfo 클래스가 있습니다. CCommandLineInfo 설명서를 참조하십시오. 여기

+0

고마워요! 그냥 내가 뭘 찾고 있었는지! – samoz

2

내가 MFC 응용 프로그램에서 그것을 할 방법은 다음과 같습니다

int option1_value; 
BOOL option2_value; 

if (m_lpCmdLine[0] != '\0') 
{ 
    // parse each command line token 
    char seps[] = " "; // spaces 
    char *token; 
    char *p; 
    token = strtok(m_lpCmdLine, seps); // establish first token    
    while (token != NULL) 
    { 
      // check the option 
      do // block to break out of   
      { 
       if ((p = strstr(strupr(token),"/OPTION1:")) != NULL) 
       { 
        sscanf(p + 9,"%d", &option1_value); 
        break; 
       } 

       if ((p = strstr(strupr(token),"/OPTION2")) != NULL) 
       { 
        option2_value = TRUE; 
        break; 
       } 
      } 
      while(0); 

      token = strtok(NULL, seps);  // get next token   
    } 
} // end command line not empty 
+0

아주 좋은 해결책! 또한 스택 오버플로에 오신 것을 환영합니다! – samoz

0

CCommandLineInfo 물건은 사용하기 정말 지루한입니다. 부풀어 오르는 순서가 늘어남에 따라 TCALP (템플릿 화 된 C++ 명령 행 파서 http://tclap.sourceforge.net/manual.html) 또는 boost program_options (http://www.boost.org/doc/libs/1_48_0/doc/html/program_options.html)를 사용하는 것이 좋습니다. 다른 MFC C++ 응용 프로그램과 다른 운영 체제에서도 라이브러리를 사용할 수 있습니다. TCLAP은 "-"(http://tclap.sourceforge.net/manual.html#CHANGING_STARTSTRINGS)로 시작하는 POSIX 대신 "/"로 시작하는 Windows 스타일 매개 변수를 지원하도록 구성 할 수 있습니다.