티스토리 뷰

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을 쓰는게 가장 좋은 것 같다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함