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
이 외에 이번 포스팅에서 소개할 방법은 API를 활용하는 방법이다.
아래의 API를 사용하게되면 UNICODE 의 경우에도 별다른 작업없이 파라메터를 사용할 수 있다.
명령행 문자열을 가져오는 함수
LPWSTR WINAPI GetCommandLineW(void);
이 함수를 실행하면 경로를 포함한 프로그램 이름과 명령행 파라메터를 문자일로 반환한다.
명령행 문자열을 문자열 배열로 변환하는 함수
LPWSTR *CommandLineToArgvW(
LPCWSTR lpCmdLine,
int *pNumArgs
);
이 함수는 명령행 문자열과 파라메터 개수를 저장을 정수형 포인터를 받아 명령행 문자열을 문자열 배열형태로 바꿔주고 이때 문자열 배열 개수를 넘겨준 포인터 변수에 할당한다.
MFC 에서는 그냥 사용하면 되지만 C++ Builder 에서는 ShellApi.h 를 포함시켜줘야한다.
간단한 예를 보는 것이 이해가 빠를 것이다.
MSDN : GetCommandLine Function
MSDN : CommandLineToArgvW Function
'Dev Story > Tips' 카테고리의 다른 글
Visual C++ 2005 에서 간단하게 SQLite Database 사용하기 (2) | 2008.07.23 |
---|---|
Microsoft 의 MSDN Magazine 이 안보일때... (0) | 2008.07.22 |
레지스트리 파일 (.reg) 코딩으로 병합하기 (0) | 2008.07.17 |
유니코드와 아스키코드간의 변환 함수 (0) | 2008.07.11 |
문자형식 변경하기. UNICODE <-> ASCII (0) | 2008.07.02 |