2012-04-12 25 views
4

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

+0

'main'関数には、通常は' argc'と 'argv'という2つの引数があります。これはアプリケーションに渡されるコマンドライン引数であり、wxWidgetsに渡します。必要ならば、あなた自身の 'main'への引数をチェックしてください。 –

+0

@ JoachimPileborg:wxWidgetsプログラムの初期化方法に精通しているかどうかはわかりませんが、通常はwxFrameとwxApplicationウィンドウを使用していて、これらの2つの変数にアクセスできません。 – jack

+0

アプリケーションクラスにパラメータを取得するメソッドがない場合、そこから引数を取得するために、おそらく 'IMPLEMENT_APP'マクロを再実装する必要があります。 –

答えて

2

は、これらの例(12)を見てくださいか:

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; 
} 
5

プレーンC++では、argcargvがあります。 wxWidgetsアプリケーションを構築するときは、wxApp::argc,wxApp::argv[]またはwxAppConsole::argc,を使用してアクセスできます。 wxAppwxAppConsoleから派生しているので、コンソールアプリケーションかGUIアプリケーションかによってどちらかが動作します。あなたはまた、wxCmdLineParserに興味がある可能性がありwxAppConsole

IMPLEMENT_APP(MyApp) 

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

を参照してください。

関連する問題