Aufruf über Parameter
-
Hi,
Wenn ich in Windows eine Datei mit einem Programm assoziiere, wird ja bekanntlich als Parameter des Programms der Dateiname derjenigen Datei angegeben, die ich mit dem Programm laden will. Wenn ich nun aber versuche, diesen Parameter als Parameter für eine Funktion, die die Datei ausliest, benutze, kann fstream::open die Datei nicht öffnen. Da dies jedoch mit allen anderen Parametern einwandfrei funktioniert, denke ich, dass ich den Parameter noch verändern muss.
Was muss ich nun dafür tun? Oder liegt es evtl. an etwas Anderem?
-
Das %1 muss in Anführungszeichen stehen (damit es auch funktioniert, wenn der Pfad Leerzeihen enthält)!
Ist nur eine Vermutung
[ Dieser Beitrag wurde am 28.11.2002 um 16:31 Uhr von flenders editiert. ]
-
Mach doch mal folgendes:
TCHAR szBuffer[100]; wsprintf(szBuffer, TEXT("%s"), argv[1]); // oder szCmdLine bei WinMain MessageBox(NULL, szBuffer, TEXT("Parameter"), MB_OK);
Dann siehst du, ob du den Pfad korrekt erhälst.
-
Hi,
Hab ich schon gemacht. Wenn ich dann z.B. D:\1.ffa lade,
lautet die CommandLine "D:\1.ffa" (so wird es in der MessageBox angezeigt).Trotzdem funktioniert es nicht.
-
Wenn es mit den Anführungszeichen in der MessageBox angezeigt wird, dann musst du noch die Anführungszeichen entfernen, jetzt sieht es ja so aus:
fstream::open("\"C:\\test\"",ios::out);
Ist aber nur ne Vermutung.
cu
-
Wird dann aber nicht das \ als Steuerzeichen aufgefasst?
-
Steuerzeichen??? Hab noch nie davon gehört.
fstream::open muss auf jedenfall der Pfad ohne Anführungszeichen übergeben werden, also z.B.
fstream::open("C:\\test",ios::out);
cu