Also ich würde als Fehler sagen, dass du bei LoadSettings und SaveSettings nur settings.tst geschrieben hast. Ersetz es durch C\settings.tst und es funtzt
wenn ich in die testbox manuell z.b. "C:\Program Files\Internet Explorer\IEXPLORE.EXE" eintrage und auf OK klicke wirds gespeichert
wenn ich die IEXPLORE.EXE über den CFileDialog auswähle und danach eigentlich genau das gleiche in der textbox steht wirds nicht mehr gespeichert beim klick auf OK
welche dateien das sind ist bei mir total egal
also denke nicht das es daran liegt das ich nur "settings.tst" schreibe - da es ohne den "umweg" über den CFileDialog ja klappt und die datei problemlos im aktuellen ordner gespeichert wird.
habs nochmal von nem freund testen lassen der - genau wie ich - windows XP hat.... bei ihm hats auch funktioniert... scheint echt an meiner VC++ 6.0- bzw. Windows-Installation zu liegen.Dieser Post wurde am 10.02.2003 um 16:17 Uhr von bIOHAZARd editiert.
nachdem ich die .exe datei über den CFileDialog ausgewählt habe ändert sich das aktuelle verzeichnis auf das der ausgewählten datei :)
die settings.tst datei ist beim beispiel oben dann im "C:\Program Files\Internet Explorer" Verzeichnis
also das rätsel wurde gelöst ;)
nun muss ihc nur noch rausfinden wie ich dafür sorge das es immer im verzeichnis meines programms gespeichert wird - nicht in dem des ausgewählten programms ;)
puh... =)Dieser Post wurde am 10.02.2003 um 16:22 Uhr von bIOHAZARd editiert.
Also bei mir funktionierts einwandfrei. Ich kann von jedem Laufwerk und von jedem Ordner Dateien auswählen und er speicherts. Ändere mal die Parameter von LoadSettings und SaveSettings. Wenns dann no immer net funktioniert, weiß ich auch nimma wieter
Wenn ich den CFileDialog öffne, steht der auf dem Verzeichnis "My Documents" und nicht auf dem Verzeichnis, unter dem ich das Programm gestartet habe. Wie kann ich das machen, dass ich gleich in dem Verzeichnis bin, in dem ich auch das Programm starte? _getcwd( buffer, _MAX_PATH ); ergibt auch nur "CMy Documents".
Durch den Durchsuchen-Dialog wird der aktuelle Pfad geändert. Deine Datei sollte sich dann immer in den Ordner speichern, in dem beim Auswahlpfad auf OK gedrückt wurde.
Am besten immer vorher mit GetCurrentDirectory() das aktuelle Verzeichnis holen und nach dem aufruf des DoModals wieder mit SetCurrentDirectory() setzen. -- class God : public ChuckNorris { };
Macht "_getcwd( buffer, _MAX_PATH );" nicht das gleiche. Habe das auch vor dem DoModals Aufruf.
Bei
char* buffer; ... GetCurrentDirectory(buffer);
kommt immer ne Fehlermeldung: "error C2660: 'GetCurrentDirectoryA' : function does not take 1 parameters" Was hab ich da falsch gemacht?Dieser Post wurde am 22.12.2003 um 11:21 Uhr von MasterThomsen editiert.