wxWidgets 中的命令行参数

Command line arguments in wxWidgets

本文关键字:参数 命令行 wxWidgets      更新时间:2023-10-16

有没有办法读取传递到C++ wxWidgets应用程序中的命令行参数?如果是这样,您能否举例说明如何做到这一点。

简单来说,C++,有argcargv。当您构建 wxWidgets 应用程序时,您可以使用 wxApp::argcwxApp::argv[]wxAppConsole::argcwxAppConsole::argv[] 来访问这些应用程序。请注意,wxApp派生自 wxAppConsole ,因此根据您使用的是控制台应用还是 GUI 应用,这两种方法都有效。查看 wx应用控制台

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

您可能还对wxCmdLineParser感兴趣。

看看这些例子(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; 
}

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