PDA

Vollständige Version anzeigen : Informatiker on board???



knife
26-09-2010, 15:41
Moinmoin, ich bin grade ein bisschen am programmieren, C/C++. Ich benutze das Microsoft Visual Studio (2008). Ich bastele Konsolenanwendungen von fragwürdigem nutzen, hauptsächlich zum üben. Nun bin ich auf ein Problem gestoßen:

Normalerweise gibt man um einen Konsolenbefehl zu nutzen ja einfach system("Befehl"); ein, dann geht das.
Nun weigert sie dieses dreckige Ding aber bei manchen Befehlen einfach.
Ich will nämlich eine Datei die auf E:\ liegt aus dem Programm heraus starten (eine Playlist, es soll sich dann der Player öffnen).
Wenn die Datei im selben Ordner wie das Programm liegt funktioniert das auch ganz wunderbar,
aber er nimmt einfach folgende Befehle nicht: system("E:"); und system("cd E:\\");

Woran kann das liegen? Denn irgendwie muss das ja gehen...

mfg, Jan

Ch1lld0wn
26-09-2010, 15:56
Sicher dass du C/C++ programmierst? Für mich sieht das eher nach Batch aus :D
Schau dir mal CreateProcess an.

*Azrael*
26-09-2010, 16:00
jop, schreit nach batch

knife
26-09-2010, 16:10
nönö, ich bin mit C/C++ unterwegs, allesdings kann man die Befehle eigentlich problemlos mit system("Befehl"); "einbinden", wenn ihr wisst was ich meine.

Ch1lld0wn
26-09-2010, 16:16
C++ Befehl ruft Batch auf. Da kannst auch gleich Batch programmieren :rolleyes:
Alles was du mit dem command system machst ist eigentlich kein C++. System ruft cmd auf und führt den eingegebenen BATCH command aus.

mindcrime
26-09-2010, 16:19
Ich habe zwar mit Systemaufrufen aus dem Visual Studio keine Erfahrung, gebe aber einfach mal einen Schuss ins Blaue ab.

So wie es aussieht, willst Du zunächst auf das Laufwerk (bzw. in den Ordner) wechseln, auf dem Deine Playlist liegt. Das Ausführungsverzeichnis für diese Systemaufrufe müsste eigentlich das sein, in dem Deine Applikation ausgeführt wird. Drum klappt es auch, wenn beide im selben Verzeichnis sind.
Evtl. lässt sich in diesem Kontext das Verzeichnis einfach nicht mit den sonst üblichen DOS Befehlen verändern.

Hast Du schon volle Pfade getestet, also z.B. system("E:\\playlist.blubb");
Und hast Du Dir schon mal den zurückgegebenen Code ausgeben lassen, wenn Du Deine Kommandos versuchst?

knife
26-09-2010, 16:25
Hat sich erledigt, kann weg, ich hab einfach für jedes Ding ne batch geschrieben, so geht es, und die lässt sich fehlerfrei aufrufen. Ein glück kann man batch binnen einiger minuten lernen. Gut das ich hier gefragt habe, der Begriff "Batch" hat mir vorher garnichts gesagt, jetz ist alles fein...