원문 http://wisdom.sakura.ne.jp/system/winapi/win32/win6.html
기동(起動) 시의 인수(引数)
C언어의 콘솔 프로그래밍에서는 main() 함수가 인수를 받았습니다.
main() 함수는 인수 argv[]를 두번째 인수로 받습니다.
그러면 WinMain() 함수는 세번째 인수로 인수를 받고 있습니다.
커맨드 라인에서의 구성이나 파일의 D&D에서의 구성에 어플리케이션이 대응하는 것이 가능합니다.
WinMain()의 세번째 인수는 배열할 필요가 없습니다.
토큰의 분해를 하지 않고, 스페이스도 포함한 한개의 문자열로써 저장합니다.
#include
int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
PSTR lpCmdLine ,
int nCmdShow ) {
MessageBox(NULL , lpCmdLine , TEXT("Kitty") , MB_ICONINFORMATION);
return 0;
}
커맨드 라인에서의 인수를 메세지 박스에 표시합니다.
실행 파일에 데이터파일 같은것을 D&D해주세요.
파일 명(名)이 풀 패스로 메세지 박스에 표시됩니다.
함수에서 얻기
WinMain() 함수에서 커맨드 라인에 액세스 하는 것이 가능합니다
전용 GetCommandLine() 함수에서 얻는 것도 가능합니다.
어떤 것보다도, WinMain의 세번째 인수는 프로그램 본체(本体)의 인수를 얻을 수 없습니다.
하지만, GetCommandLine()에서는 실행 파일의 이름을 얻을 수 있습니다.
LPTSTR GetCommandLine(VOID)
LPTSTR은 TCHAR의 포인터 형(型)입니다.
이 함수는 기동시의 커맨드 라인 인수를 반환합니다.
그 때문에, 국제용 소스에서는 이 방법이 좋겠네요.
#include
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR pCmdLine , int nCmdShow ) {
MessageBox(NULL , GetCommandLine() ,
TEXT("Kitty") , MB_ICONINFORMATION);
return 0;
}
이 프로그램에서는 프로그램 본체의 풀 패스도 표시합니다.
LPTSTR GetCommandLine(VOID)
현재의 프로세스에 커맨드 라인 문자열을 반환합니다.
반환 값 - 커맨드 라인 문자열에 대한 포인터를 반환합니다.