有没有办法可以读取传递给C ++ wxWidgets应用程序的命令行参数?如果是这样,请你提供一个如何操作的例子。
答案 0 :(得分:5)
在纯C ++中,有argc
和argv
。在构建wxWidgets应用程序时,您可以使用wxApp::argc
,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感兴趣。
答案 1 :(得分:1)
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;
}
答案 2 :(得分:0)
您可以访问wxApp
中的{1}}继承的命令行变量,wxAppConsole
提供wxAppConsole::argc
和 wxAppConsole::argv。