003
06.06.2003, 11:50 Uhr
ao
(Operator)
|
Zitat: |
ai-tee postete
C++: |
system ("*progPath datei.ps"); // datei.ps ist ein Wert der mitgegeben wird um das Programm auszuführen (klappt aber auch nicht)
|
Der Befehl "*progPath" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Ich schätze mal das Problem liegt am Pointer oder?
|
Die Funktion system () versucht, den String, der ihr übergeben wird, auszuführen, als ob du es direkt am DOS-Prompt eingetippt hättest. *progPath ist natürlich kein gültiges Kommando.
Du hast den Befehlsstring falsch zusammengebaut, "*progPath ..." ist kein Zugriff auf den Pointer, sondern einfach eine Zeichenkette, die mit der gleichnamigen Zeigervariablen nichts zu tun hat.
Du kannst strcpy, strcat oder Ähnliches verwenden (auch CString, wenn MFC erlaubt ist), um die Befehlszeile im Speicher zusammenzubauen. Erst danach die komplette Zeile an system () übergeben. Der Inhalt müßte dann irgendwas der Art "bla.exe datei.ps" sein.
Eine weitere gute Idee ist, die Befehlszeile vorher mit printf () auszugeben und nicht blind an system () weiterzureichen.
Eine noch bessere Idee ist, einen Debugger zu benutzen.
Zu cstdlib oder std: Alles, was du hier gepostet hast, ist C, nicht C++. Ich verstehe darum nicht, wozu du cstdlib oder std brauchen solltest.
Du bist doch der, der sein Programm als Windows-Service anmelden will, oder? Es könnte sinnvoll sein, vorher noch ein paar Grundlagenkenntnisse über C zu erwerben; deine Fragen zeigen an, daß du hier noch ziemlich am Anfang stehst.
Gruß
ao |