VC++ 6.0
2012.10.10 17:16
MFC에서 Argument(Parameter)를 받아 처리하기
다물칸 주소복사
조회 수 4460 추천 수 0 댓글 0
구분 | 팁&트릭 |
---|
App나 DLG에 다음을 추가합니다.
_CRTIMP extern int __argc; /* count of cmd line args */ _CRTIMP extern char ** __argv; /* pointer to table of cmd line args */
__argc 는 파라미터의 수를 나타내는데 구분이 " "(Space)입니다. 나눌 문자가 아닌 실제 데이터에 스페이스가 있으면 대략 난감입니다. 그래서 전 다음과 같이 처리하였습니다.
파라메터에 그냥 통문자열로 "^"를 구분자로 두어서 처리하도록 합니다.
if( __argc > 1 ) { for(int i=1;i<__argc;i++) { strPara = strPara + __argv[i] + " "; } AfxExtractSubString(strPatID, strPara, 0, _T('^')); AfxExtractSubString(strPatName, strPara, 1, _T('^')); AfxExtractSubString(strOrdName, strPara, 2, _T('^')); }
__argc가 1보다 클 경우만 처리하고 else에선 처리하지 않고 프로그램이 종료되도록 하였습니다.
스페이스로 구분이 된 파라미터를 for루프에서 묶어버립니다. 파라미터로 받은 것을 그대로 만드는 작업입니다.
다시 이것을 미리 "^"로 구분하여 넣었기 때문에 AfxExtractSubString()로 잘라 처리합니다.