000
16.10.2004, 20:30 Uhr
~hardixy
Gast
|
Hallo zusammen, habe eine Funktion geschrieben, die Datei öffnen oder Datei speichern - Dialog aufrufen soll und die gewählte Datei zurückgibt. Der Datei öffnen-Dialog funktioniert wie er soll, jedoch stellt das "Datei speichern" - Dialog sich quer.
Das Problem: Das Fenster geht auf und ich kann mir eine Datei zum Speichern auswählen, doch dann erfolgt stets eine Exzeption, dass irgendein unerlaubter Speicherplatz angesprochen wurde. (Die Anweisung written konnte nicht auf Speicherplatz 0xcccccccccc durchgeführt werden!!!) Wer kennt sich da aus und kann mir evtl. weiterhelfen???
danke schonmal im Voraus an alle fleissigen Helferlein, euer Forum ist ne gute Sache Freue mich auf Antwort. hardixy
Hier der Code:
aktion = 1 --> Datei öffnen aktion = 2 --> Datei speichern
C++: |
char* DateiDialog(int aktion) { static OPENFILENAME ofn;
char cDatei[500], cDateiPfad[500]; static TCHAR Filter[] = TEXT ("Bitmap-Dateien (*.BMP)\0*.bmp\0") \ TEXT ("Alle Dateien (*.*)\0*.*\0\0");
cDateiPfad[0] = '\0'; cDatei[0] = '\0';
ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = NULL; ofn.nMaxFile = sizeof(cDateiPfad); ofn.lpstrFile = cDateiPfad; ofn.lpstrFilter = Filter; ofn.nFilterIndex = 0; ofn.lpstrFileTitle = cDatei; ofn.nMaxFileTitle = sizeof(cDatei); ofn.lpstrInitialDir = NULL;
//Datei öffnen --> dieser Abschnitt funktioniert if(aktion == 1) { ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if (GetOpenFileName(&ofn) == 0) return "kein Bild"; }
//Datei speichern --> hier tritt der Fehler auf else { ofn.Flags = OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn) == 0) return "kein Bild"; }
//keine Datei ausgewählt... if (ofn.lpstrFile == "") return "kein Bild";
return ofn.lpstrFile;
}
|
Dieser Post wurde am 17.10.2004 um 01:05 Uhr von Windalf editiert. |