在wxWidgets中的命令行参数(Command line arguments in wxWidg

2019-09-16 11:34发布

有没有一种方法我可以读传递到一个C ++ wxWidgets的应用程序的命令行参数? 如果是这样,请您提供如何做到这一点的例子。

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


Answer 2:

在普通的C ++,存在argcargv 。 当你正在建设一个wxWidgets的应用程序,您可以使用访问这些wxApp::argcwxApp::argv[]wxAppConsole::argcwxAppConsole::argv[] 需要注意的是wxApp源自wxAppConsole ,所以要么取决于如果您有一个控制台应用程序或GUI应用程序的工作。 见wxAppConsole

IMPLEMENT_APP(MyApp)

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

您还可能有兴趣在wxCmdLineParser 。



Answer 3:

您可以从您访问命令行变量wxApp ,因为它从inherites wxAppConsole提供wxAppConsole :: ARGC和wxAppConsole :: argv的 。



文章来源: Command line arguments in wxWidgets