Problem mit CString und char



  • Hallo,

    ich habe hier im Forum folgende Funktion zum "Isolieren des Pfad" gefunden:

    int IsolatePath(LPCTSTR strFullPath)
    {
    #define  TRENNER  '\\'  
    //char  pfad [] = strFullPath;  
    char  *zeiger;
    if ((zeiger = strrchr (strFullPath, TRENNER)) == NULL)  
    {
    	return  -1;   
    }
    
    else  *(zeiger + 1) = '\0'; 
    return 0;
    

    Die Funktion hat seither immer ihre Dienste super erledigt. Jetzt habe ich aber ein Problem wenn ich an die Funktion ein CString übergebe:

    CString test;
    test = "c:\\test\\hallo.dat";
    IsolatePath(test.GetBuffer());
    

    Wenn ich jetzt mit "test" CString-Methoden wie Append oder AppendFormat anwenden will, passiert gar nichts (es wird nichts hinzugefügt)! Warum ist das so?

    Danke für Eure Hilfe!!!

    P.S: Natürlich kann ich die Funktion auch mit MFC CString nachbauen, mich würde aber interessieren wo der Fehler liegt, bzw. warum es mit der Funktion nicht geht....



  • Les dir mal die Dokumentation von GetBuffer durch.Bevor du nicht ReleaseBuffer aufgerufen hast solltest du keine CString-Methoden aufrufen.

    MfG Spacelord


Anmelden zum Antworten