Hi !
Ich möchte ein Konsolenprogramm von der Konsole aus starten und einen Parameter mitgeben(Pfad einer Datei). Den Parameter muss ich jetz in der main einfach vorsehen oder und dann müsste das ohne Probleme funktionieren. Oder gibts da sonst noch was zu wissen?
Hast du dich schonmal gefragt, wofür main() Parameter hat? Richtig, da stehen die cmd-line-args drinnen
argc ist die Größe (Anzahl der Parameter), argv enthält diese, wobei argv[0] == Programmname.
Die Signatur von main zu ändern geht nicht. Der C++-Standard erlaubt 2 Formen:
* int main()
* int main( int argc, char** argv )
// edit:
Mir ist nicht klar was du mit "QString mitgeben" meinst. Du kannst die Parameter von main() nicht ändern, du musst über argv gehen, das Array parsen und entsprechend deinen path extrahieren.
SamFredericks hat geschrieben:Hier bekommst du gleich eine QStringList mit all deinen übergebenen Parametern und könntest dir sozusagen die for-Schleife sparen.
Theoretisch ja. Praktisch sagt die Doku:
Calling this function is slow - you should store the result in a variable when parsing the command line.
Wenn der Zugriff in der main erfolgt (was wahrscheinlich ist), bietet sich der direkte argv-Zugriff an (ist ja nicht wirklich schwer).
Wenn die Cmdline-args mal überhand nehmen, würde ich sowieso gleich ein ordnetliches Framework einsetzen, z.B. boost.program_options.