1. MyApp 클래스(wxApp 를 public 상속한 클래스)에서 다음 메소드를 오버라이드 한다.
virtual void OnInitCmdLine(wxCmdLineParser& parser);
virtual bool OnCmdLineParsed(wxCmdLineParser& parser);

2. command line 설정
const wxCmdLineEntryDesc cmd_desc[] =
{
{ wxCMD_LINE_OPTION, "c", "config", "configuration url", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL|wxCMD_LINE_PARAM_MULTIPLE },
wxCMD_LINE_DESC_END
};

/c나 --config 을 키로 들어온 string 값을 의미하고
wxCMD_LINE_PARAM_OPTIONAL  는 있어도 되고 없어도 되고를 의미 
wxCMD_LINE_PARAM_MULTIPLE 는 --config 이 여러번 들어올 수 있으며 마지막 값을 가져오겠음을 의미
wxCMD_LINE_DESC_END 는 wxCmdLineEntryDesc 정의가 끝났음을 의미
 

3. 받아들일 커맨드 라인 키 설정
void  MyApp ::OnInitCmdLine(wxCmdLineParser& parser)
{
wxApp::OnInitCmdLine(parser);
// command 명령 지정
parser.SetDesc(cmd_desc);

// 프로그램 설명 추가
parser.AddUsageText("안녕하세요. MyApp command line 입니다.");
//wxMessageBox(parser.GetUsageString());  // 설명 확인
}
 
4. 커맨드 라인 파싱된 값 획득
bool MyApp::OnCmdLineParsed(wxCmdLineParser& parser)
{
    if ( !wxApp::OnCmdLineParsed(parser) )
        return false;

// get command line
wxString config;
parser.Found("config", &config);
if (!config.IsEmpty()) {
wxMessageBox(config);
}
    return true;
}

wxApp::OnInit() 실행후 OnInitCmdLine(), OnCmdLineParsed()가 실행된다.
그래서 OnInit()에서 미리 커맨드 인자값을 알려면 wxApp::argc, wxApp::argv 를
가져다 써야 하는데 좀 이상하지 않나..?

어쨋든 wxApp 에서 기본적으로 등록안된 인자값이 오면 "Unknown Option" 메시지창을 띄워주므로
wxWidget의 기능을 안쓰고 직저접 OnInit() 에서 wxApp::argc , argv 로 사용하려면
OnInitCmdLine() 재정의 하여 parser.SetCmdLine("") 를 넣어주면 된다.

void MyApp::OnInitCmdLine(wxCmdLineParser& parser)
{
parser.SetCmdLine("");
}

혹은 OnInit() 에서 다음 코드를 주석처리
    //if ( !wxApp::OnInit() )
    //    return false;