Merkwürdiger Fehler bei GetOpenFileName()



  • Hi,

    ich hoffe mir kann hier einer helfen - mein problem:

    in einer mfc-app benutze ich die funktion GetOpenFileName(), was auch normal funktioniert. aber nachdem die funktion einmal aufgerufen wurde funktionieren die fopen() und fprintf() funktionen nicht mehr!? d.h. die datei wird einfach nicht angelegt... 😡 😡 😡

    hat vielleicht einer ne idee woran der scheiß liegt oder ne andere möglichkeit statt GetOpenFileName()???

    PLZ HELP

    MFG Slater



  • Zeig mal deinen Code zum Anlegen der Datei...



  • if(Datei = fopen("config.cfg","w"))
            {
                fprintf(Datei,"DONKEYMANAGER CONFIG-FILE\n-------------------------\n\n\n");        
    m_Pfad.GetWindowText(temp,sizeof(temp));
                fprintf(Datei,"CHAR_PATHSERVEREXE %s\n\n",&temp);    
                fclose(Datei);
            }
    

    Wobei der Pfad der von der GetOpenFilename Funktion gespeichert wurde in das Editfeld m_Pfad eingetragen wurde...

    [ Dieser Beitrag wurde am 05.01.2003 um 17:33 Uhr von Slater editiert. ]



  • Hi 🙂

    bei ofn.Flags "OFN_NOCHANGEDIR" angeben und es klappt mit fprintf() fclose() etc.

    char filename[1024];
    FILE *fp;
    OPENFILENAME ofn;
    
    ...
    ofn.lpstrFile = filename;
    ofn.Flags     = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
    
    ...
    
    GetOpenFileName( &ofn );
    ...
    
    fp = fopen( filename, "w" );
    fprintf( fp, "test" );
    fclose( fp );
    

    OFN_NOCHANGEDIR verhindert die Änderung des Working Directory

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms646839(v=vs.85).aspx


  • Mod

    Ich würde mal in den Raum werfen:
    Datei Operationen ohne vollständige Pfade zu verwenden ist gerade zu fahrlässig... 😉



  • Ich gebe zu bedenken, dass das

    Slater schrieb:

    if(Datei = fopen("config.cfg","w"))
    

    richtig bzw. gewollt ist. Der Ausdruck in der Klammer ist doch immer true.


  • Mod

    AndyDD schrieb:

    Ich gebe zu bedenken, dass das

    Slater schrieb:

    if(Datei = fopen("config.cfg","w"))
    

    richtig bzw. gewollt ist. Der Ausdruck in der Klammer ist doch immer true.

    Ist er nicht. Wenn fopen fehlschlägt, dann wird Datei auf NULL gesetzt und die if Abfrage geht in den else Zweig.



  • Martin Richter schrieb:

    Ist er nicht. Wenn fopen fehlschlägt, dann wird Datei auf NULL gesetzt und die if Abfrage geht in den else Zweig.

    Ok, das hab ich so aber noch nie bewusst verwendet. Dann will ich nichts gesagt haben.


Anmelden zum Antworten