Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » system()

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
20.02.2006, 15:29 Uhr
Karldin Shinowa
Professional Noob


so ich weiß zu dem hatas schon viele topics gegeben aber keines hat meine frage beantworter. Ich habe ein Pogramm(im hauptordner) das eine datei aufrufen soll die in einem unterordner ist.

system(H:/Hauptordner/Unterordner/Datei.exe) funktioniert

system(Unterordner/Datei.exe) funktioniert nicht obwohl das eigentlich funktionieren sollte da er ja nur in den Unterordner springen müsste... wie muss ich das schreiben?
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.02.2006, 15:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Wie in der FAQ beschrieben, macht system ein eigenen Prozess auf, unter Windows eben command.com oder so. Dieser wird sich vermutlich initial *nicht* in "H:/HauptOrdner" befinden, selbst wenn Dein programm es sein sollte.

Ich weiß nicht, wie es unter Windows genau geregelt ist, aber unter UNIX würde es helfen, H:Hauptordner in den Pfad aufzunehmen (PATH Env.Variable) und dann das System aufrufen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.02.2006, 15:48 Uhr
Karldin Shinowa
Professional Noob


aha....
und wie soll ich das jetzt lösen?
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.02.2006, 17:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Er startet in dem Arbeitsverzeichnis. d.h wenn du dein programm in

h:/foo

ausführst, führt dich

Unterordner/Datei.exe

auf

h:/foo/Unterordner/Datei.exe
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.02.2006, 17:30 Uhr
Karldin Shinowa
Professional Noob


klar aber was ist wenn ich den hauptordner nicht immer am gleichen Platz habe? muss ich dann jedes mal den code ändern?
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.02.2006, 17:38 Uhr
BoBtheREapER
kein job für nen BoB


einfach:
../Unterordner
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.02.2006, 18:22 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


bzw beim start des programms von argv[0] den exe-namen wegschneiden, und mit chdir in das "modulverzeichnis" gehen. schon klappen deine unterordner
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.02.2006, 20:55 Uhr
Karldin Shinowa
Professional Noob


so?


C++:
char*Ordner=argv[0]-"MAIN.exe"; //<---zeigt fehler
chdir(Ordner);


--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.02.2006, 21:25 Uhr
Pablo
Supertux
(Operator)


klar soll Fehler zeigen, was hast du denn sosst erwartet? argv[0] ist ein char Zeiger, "MAIN.exe" zeigt ebenfalls auf eine Adresse im Speicher, ws denkst du was kommt, wenn du die Adressen argv[0] und "MAIN.exe" subtrahierst?

Siehe FAQ: www.fun-soft.de/showtopic.php?threadid=12100
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.02.2006, 21:45 Uhr
Karldin Shinowa
Professional Noob




Zitat von FloSoft:
bzw beim start des programms von argv[0] den exe-namen wegschneiden, und mit chdir in das "modulverzeichnis" gehen. schon klappen deine unterordner


wie soll ich das denn sonst umsetzen?
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: