JHB의 프로그래밍 삽질기

[MFC] MFC에서 argv 받기 본문

PROGRAMMING/Win/MFC

[MFC] MFC에서 argv 받기

roter 2011.06.02 17:25
C, C++ 에서는 프로그램 실행시 명령 인자를 받을 때 argv를 통해서 쉽게 받아 올 수 있다.

MFC에서는 어떻게 얻어올까?

GetCommandLine(); 을 쓰면 얻어 올 수 있다.
백문이 불여일견. 한번 테스트 직접 해보시길.

그리고 아래는 인자를 쫙 얻어오는 예제 소스.
띄어쓰기(공백)이 제대로 분리 됐는지 확인 하기 위해 출력 시에 @를 시작과 끝에 붙여서 출력 시켰다.
파싱은 알아서 하면 됨.

LPSTR pszArgv = GetCommandLine();
CString strArgv = pszArgv;
int nFirstSpace = strArgv.Find( _T(" ") );
CString strFirstArgv = strArgv.Mid( nFirstSpace + 2 );
AfxMessageBox( _T("@") + strFirstArgv + _T("@") );

---------------------20110829 수정---------------------------
이거 보다 그냥, 프로젝트와 이름이 같은 파일의 InitInstance()에서
m_lpCmdLine 변수를 보는것이 더 나은 것 같다.
m_lpCmdLine 변수에 아규먼트가 들어 있다.

또,
CCommandLineInfo cmdLine;을 선언 한 이후
ParseCommandLine( cmdLine ); 해주면 cmdLine의 strFileName에 argv값이 들어가는 듯 하다. 근데 이 경우는 띄어쓰기 구분자로 두개 이상의 인자를 넣을 때는 첫번째것만 가져오더라.
따라서 그냥 m_lpCmdLine을 쓰는게 가장 좋은 것 같다.
0 Comments
댓글쓰기 폼