2008/07/17
명령행 파라메터 읽어오기
C++ 윈도우즈 프로그래밍에서 명령행 파라메터를 가져오기 위해서는 __argc, __argv 를 이용한다.
이 외에 이번 포스팅에서 소개할 방법은 API를 활용하는 방법이다.
아래의 API를 사용하게되면 UNICODE 의 경우에도 별다른 작업없이 파라메터를 사용할 수 있다.
명령행 문자열을 가져오는 함수
LPWSTR WINAPI GetCommandLineW(void);
이 함수를 실행하면 경로를 포함한 프로그램 이름과 명령행 파라메터를 문자일로 반환한다.
명령행 문자열을 문자열 배열로 변환하는 함수
LPWSTR *CommandLineToArgvW(
LPCWSTR lpCmdLine,
int *pNumArgs
);
이 함수는 명령행 문자열과 파라메터 개수를 저장을 정수형 포인터를 받아 명령행 문자열을 문자열 배열형태로 바꿔주고 이때 문자열 배열 개수를 넘겨준 포인터 변수에 할당한다.
MFC 에서는 그냥 사용하면 되지만 C++ Builder 에서는 ShellApi.h 를 포함시켜줘야한다.
간단한 예를 보는 것이 이해가 빠를 것이다.
MSDN : GetCommandLine Function
MSDN : CommandLineToArgvW Function
Original Post : http://neodreamer-dev.tistory.com/125
이 외에 이번 포스팅에서 소개할 방법은 API를 활용하는 방법이다.
아래의 API를 사용하게되면 UNICODE 의 경우에도 별다른 작업없이 파라메터를 사용할 수 있다.
명령행 문자열을 가져오는 함수
LPWSTR WINAPI GetCommandLineW(void);
이 함수를 실행하면 경로를 포함한 프로그램 이름과 명령행 파라메터를 문자일로 반환한다.
명령행 문자열을 문자열 배열로 변환하는 함수
LPWSTR *CommandLineToArgvW(
LPCWSTR lpCmdLine,
int *pNumArgs
);
이 함수는 명령행 문자열과 파라메터 개수를 저장을 정수형 포인터를 받아 명령행 문자열을 문자열 배열형태로 바꿔주고 이때 문자열 배열 개수를 넘겨준 포인터 변수에 할당한다.
MFC 에서는 그냥 사용하면 되지만 C++ Builder 에서는 ShellApi.h 를 포함시켜줘야한다.
간단한 예를 보는 것이 이해가 빠를 것이다.
// 예) 모든 파라메터 출력하기
LPWSTR *szArglist;
int nArgs;
int i;
szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
if( NULL == szArglist )
{
wprintf(L"CommandLineToArgvW failed\n");
}
else for( i = 0; i < nArgs; i++ ) TRACE("%d: %ws\n", i, szArglist[i]);
LocalFree(szArglist);
MSDN : GetCommandLine Function
MSDN : CommandLineToArgvW Function
Original Post : http://neodreamer-dev.tistory.com/125
Labels:
CommandLineToArgv
,
GetCommandLine
,
TistoryOldPost
,
명령행 인자 분석
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment