MFC 애플리케이션에 명령 행 인터페이스를 추가하여 명령 행 매개 변수를 제공하고 싶습니다. 이 매개 변수는 응용 프로그램 시작 방법을 구성합니다.MFC와 명령 행 인터페이스하기
그러나이 두 인터페이스를 연결하는 방법을 알 수 없습니다. 가능하다면 어떻게이 일을 할 수 있습니까?
MFC 애플리케이션에 명령 행 인터페이스를 추가하여 명령 행 매개 변수를 제공하고 싶습니다. 이 매개 변수는 응용 프로그램 시작 방법을 구성합니다.MFC와 명령 행 인터페이스하기
그러나이 두 인터페이스를 연결하는 방법을 알 수 없습니다. 가능하다면 어떻게이 일을 할 수 있습니까?
MFC에는이를 수행하기위한 CCommandLineInfo 클래스가 있습니다. CCommandLineInfo 설명서를 참조하십시오. 여기
내가 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
아주 좋은 해결책! 또한 스택 오버플로에 오신 것을 환영합니다! – samoz
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 스타일 매개 변수를 지원하도록 구성 할 수 있습니다.
고마워요! 그냥 내가 뭘 찾고 있었는지! – samoz