C++ wxDev - Abfrage Startparameter

viktor1977

Newbie
Registriert
Okt. 2015
Beiträge
3
Hallo Freunde,
seit einiger zeit beschäftige ich mich mit WxDev-programmierung. Ich war bisher immer auf der Konsole zu Hause.
Ich will eine "Exe" mit Parameter starten und diesen einen Parameter auswerten.
Mein Problem!!
Ich möchte so wie "früher" übergebene Parameter ( Beispiel: "Programm.exe \abc") auswerten.
Es gibt aber keine main-Funktion!!! auch die übliche Geschichte mit "argv[3]" ist nicht dokumentiert.
Hat jemand ein einfaches funktionierendes Beispeil. Wo muss diese Funktion überhaupt bei wxdev hin?
Ich bekomme noch ein Hack!! Kein C/C++ Buch beantwortet eine wxdev-Frage!!!!!!
Gruß Viktor!
 
Danke für die schnelle Antwort. Dein Profilbild hat mir verraten, das du mir schon öfter Anregungen ( bei Fragen anderer User) gegeben hasst.
echt klasse!!
Ergänzung ()

Habe mir die hilfe angesehen, bin aber zu blöd aus den beiden texten eine lauffähige exe zu machen. Wie binde ich die beiden inhalte in mein projekt (wxdev -c++) ein? Danke! Das thema ist ziemlich komplex.
Ergänzung ()

Hallo muss noch einmal nerven. Ich bin zu blöd aus den listing aus deinem link eine lauffähige wxdew-anwendung (projekt) zu machen. Ich brauche aber so ein projekt, damit ich mich mit der thematik besser beschäftigen kann. Kannst du mir noch einmal helfen? Vielen dank!! Gruß viktor
 
Dazu wäre es gut zu wissen was du eigentlich genau bastelst bzw. wie dein Code bisher aussieht. Hab in C++ zwar lange nix mehr gemacht, aber das sind ja immerhin Basics. Mit den wxWidgets kenn ich mich allerdings nicht wirklich aus. Hast du denn schon irgendwelche Fenster gebaut o.ä.?

Der Doku zufolge und so wie ich das aus dem Link verstehe, musst du nur diese Funktion wxApp::OnCmdLineParsed() überschreiben bzw. implementieren. Über die Funktion wxCmdLineParser::GetArguments() kannst du dann einfach über die wxCmdLineArgs iterieren.

Code:
bool MyApp::OnCmdLineParsed(wxCmdLineParser& parser)
{
    wxString Option;

    for (wxCmdLineArgs::const_iterator it = parser.GetArguments().begin(); it != parser.GetArguments().end(); ++it )
    {
        switch( it->GetKind() )
        {
            case wxCMD_LINE_OPTION:
                Option = it->GetShortName();

                if( Option.Cmp( wxT("param1") ) )
                {
                    // Aktion für /param1
                }
                else if( Option.Cmp( wxT("param2") ) )
                {
                    // Aktion für /param2
                }
                // else if ...
                break;
        }
    }

    return true;
}
So oder so ähnlich.
 
erst einmal vielen Dank für die super Hilfe!!!
ich hatte vor Jahren mal eine kleine AVR-Schaltung gebaut, die über ein Controllerschaltung einen BUS-ausliest.
Bei Störungen wird eine kleines Konsolenprogramm geöffnet, welches eine VB6-Routine startet und eine zahl (8Bit) als Adresse übergibt. Das VB6-Programm will ich jetzt durch ein wxdev-Programm ablösen.
Ich werde erst einmal deine Tipps testen und gedanklich nach vollziehen.
Ich melde mich dann noch einmal.
vielen Dank!!
 
Zurück
Oben