externes Programm über system() starten
-
Hallo,
ich versuche ein Programm über system() zu starten. Pfad will ich dabei mit Hilfe einer Variablen übergeben.
Dies führt jedoch leider zu einer "Debug Assertion Failed!"Was mache ich falsch?
#include <iostream> using namespace std; int main () { string Programmpfad; int i; for (i=0; i<=1;i++) { switch(i) { case 1: Programmpfad = "\"C:\\Program Files (x86)\\Pidgin\\pidgin.exe\""; break; } system(Programmpfad.c_str()); } return 0; }Seid bitte gnädig, bin grad mit c++ angefangen.
Vielen Dank!
-
Zuerst einmal verwirrt es mich, dass der Code compiliert. Ich verweise auf folgenden schönen Link (danke an pumuckl): http://www.c-plusplus.net/forum/304133
Zudem vereinfachen wir jetzt ein wenig (und machen es richtig):
#include <cstdlib> int main () { /*std*/system("\"C:\\Program Files (x86)\\Pidgin\\pidgin.exe\""); }Krachts immer noch? Dann hast du etwas ganz doll falsch gemacht...
-
Du solltest dir auch etwas für case 0 überlegen, denn der tritt zuerst ein.
-
Danke für die schnelle Hilfe!
@Hacker:
Deinen Hinweis habe ich hoffentlich richtig verstanden: Ich hätte auch einen kürzeren Code posten können?!
Die einfache Variante hatte ich schon, bei der weiß ich, dass es klappt. Wollte es halt mit ner Variablen machen.@MFK:
Genau das hat den Fehler verursacht! mit i=1 klappts...
-
Hans S. schrieb:
Danke für die schnelle Hilfe!
@Hacker:
Deinen Hinweis habe ich hoffentlich richtig verstanden: Ich hätte auch einen kürzeren Code posten können?!
Die einfache Variante hatte ich schon, bei der weiß ich, dass es klappt. Wollte es halt mit 'ner Variablen machen.Ja. Den Code möglichst einfach halten. Die Variable da verändert ungefähr gar nichts. (Edit: anscheinend ja doch... wie gesagt:
)
Komisch, dass bei dirsystem("");einen Laufzeitfehler verursacht... bei mir beendet sich das Programm problemlos..