조회 수 58681 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

프로세스가 시작할 때 넘겨받은 인자들은 m_lpCmdLine(CWinApp 클래스 멤버변수)에 들어있다.

( API에서 WinMain()의 lpCmdLine과 같음 )

 

인자를 사용하는 방법은 사용하는 위치에 따라 크게 2가지로 분류된다. (각각 2종류)

 

1. App클래스 (보통 InitInstance에서 )

App클래스의 InitInstance에서는 m_lpCmdLine를 직접 사용가능하다.

 

1-1. lpCmdLine를 이용하는 방법

m_lpCmdLine는 LPTSTR (TCHAR*)로 정의되어있으니 복사해서 쓰던지 알아서 쓰면 된다.

 

1-2. argc, argv를 직접 이용하는 방법

MFC내부에서 argc, argv를  __argc, __targv로 정의해놨다. (사용자환경에 따라 다를지도 모름)

 

__argc : 실행파일명을 포함한 총 인자 개수

__targv : 인자들을 담고 있는 문자 배열

 

ex)    d:\TEMP\CmdTest\Debug\CmdTest.exe abc test 123 로 실행한 경우

 

int iCnt= __argc;                                   // 4

LPCTSTR pszParam1 = __targv[0];         // d:\TEMP\CmdTest\Debug\CmdTest.exe
LPCTSTR pszParam2 = __targv[1];        // abc
LPCTSTR pszParam3 = __targv[2];        // test
LPCTSTR pszParam4 = __targv[3];        // 123

CString str1(__targv[0]);                       // d:\TEMP\CmdTest\Debug\CmdTest.exe
CString str2(__targv[1]);                       // abc
CString str3(__targv[2]);                       // test
CString str4(__targv[3]);                       // 123

 

2. App클래스가 아닌곳

간혹 app클래스가 아닌 다른 곳에서  m_lpCmdLine를 사용하고 싶을때가 있을수도 있다.

 

그럴 때는 GetCommandLine 함수를 쓰던가 CommandLineToArgvW를 쓸 수 있다.

 

2-1. GetCommandLine

GetCommandLine은 실행 파일을 포함하는 full string(LPTSTR)을 넘겨준다.

그것을 잘라서 쓰면된다.

ex)

CString strCmd( GetCommandLine() );

...잘라내기 코딩...Tokenize 사용 등등;;

     

2-2. CommandLineToArgvW

CommandLineToArgvW은 인자를 각각 잘라서 담고 있는 배열(LPWSTR*)과 인자 개수를 알려준다.

주의 - MSDN에서는 넘겨받은 스트링을 나중에 해제 시키라고 설명하고 있다.

ex)

int iCnt = 0;
LPWSTR* pStr = NULL;
pStr = CommandLineToArgvW( GetCommandLine(), &iCnt);

for(int i=0; i<iCnt; i++)
{
       CString str;
       str.Format(L"%s", pStr[i]);  //배열 처럼 쓸수있다. // pStr[0]은 실행파일. 1번부터가 인자
       AfxMessageBox(str);
}
LocalFree(pStr);


 


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
31 MFC CString 에서 형변환 함수들 총정리 2010.11.29 99984 0
30 MFC API를 이용하는 유니코드와 ANSI 문자열간의 변환 방법 2006.04.14 60958 0
29 MFC 현재디렉토리의 파일리스트들을 알아오는 클래스 CFindFile 2008.05.07 60318 0
» MFC MFC에서 커맨드 인자(cmd argument) 사용하기 2010.12.13 58681 0
27 MFC 폴더가 존재하는 지 확인하고, 없으면 만드는 함수 2010.02.01 56385 0
26 MFC CFileDialog 초기 폴더 지정 2010.08.11 55708 0
25 MFC CString을 유니코드로 변환 WCHAR에 저장하는 방법 1 2006.04.14 54846 0
24 MFC Cstring methods 2009.04.21 53347 0
23 MFC 파일 읽기 전용 해제 및 설정 2009.09.11 51815 0
22 MFC 시스템 출력 리디렉션 - 도스 커맨드 결과 받아오기 file 2007.08.14 50985 0
21 MFC [Collection] CMap 템플릿 클래스 사용하기 2010.06.23 48965 0
20 MFC 도스 커맨드 실행하기 1 2009.09.01 47673 0
19 MFC [C] Unicode 사용에 대하여 2006.04.14 45831 0
18 MFC MFC에서 인자(argument)처리 2005.10.28 45727 0
17 MFC MFC 클래스간 포인터 얻기 2010.06.01 45528 0
목록
Board Pagination ‹ Prev 1 2 3 Next ›
/ 3

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5