6

C++ wxWidgets アプリケーションに渡されたコマンド ライン引数を読み取る方法はありますか? もしそうなら、その方法の例を教えてください。

4

3 に答える 3

6

普通の C++ では、 と がargcありargvます。wxApp::argcwxWidgets アプリケーションを構築している場合、、、wxApp::argv[]またはwxAppConsole::argcを使用してこれらにアクセスできますwxAppConsole::argv[]wxAppは から派生しwxAppConsoleているため、コンソール アプリまたは GUI アプリのどちらを使用しているかに応じて、どちらも機能することに注意してください。wxAppConsoleを参照してください

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit() {
// Access command line arguments with wxApp::argc, wxApp::argv[0], etc.
// ...
}

wxCmdLineParserにも興味があるかもしれません。

于 2012-04-12T20:15:41.587 に答える
1

これらの例(1、2)または:をご覧ください。

int main(int argc, char **argv) 
{ 
    wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program"); 

    wxInitializer initializer; 
    if (!initializer) 
    { 
        fprintf(stderr, "Failed to initialize the wxWidgets library, aborting."); 
        return -1; 
    } 

    static const wxCmdLineEntryDesc cmdLineDesc[] = 
    { 
        { wxCMD_LINE_SWITCH, "h", "help", "show this help message", 
            wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP }, 
        // ... your other command line options here... 

        { wxCMD_LINE_NONE } 
    }; 

    wxCmdLineParser parser(cmdLineDesc, argc, wxArgv); 
    switch ( parser.Parse() ) 
    { 
        case -1: 
            wxLogMessage(_T("Help was given, terminating.")); 
            break; 

        case 0: 
            // everything is ok; proceed 
            break; 

        default: 
            wxLogMessage(_T("Syntax error detected, aborting.")); 
            break; 
    } 
    return 0; 
}
于 2012-04-12T06:29:31.870 に答える