SHFileOperation führt zu Absturz



  • Hallo und Guten Morgen 🙂

    ich versuche den Inhalt eines Ordners zu löschen und stelle fest, dass
    mir das Programm genau bei SHFileOperation radikal abstürzt.
    Im Debugger hält er genau an der Stelle und zeigt nur "Zugriffsverletzung beim Lesen an Position xyz" an.

    Bis gestern lief dieser Löschaufruf noch korrekt durch. Ich habe soweit ich
    es geprüft habe auch keine anderen relevanten Änderungen vorgenommen.
    In einer MessageBox zeigt er mir auch den richtigen Pfad für delallemx an.

    Ich bin ratlos. Projekt neu erstellt bzw. bereinigt habe ich auch schon 😢

    CString delallemx+="c:\\Dateien 19.08.2010\\EMX\\*.*";
    	delallemx+='\0';
    
    	SHFILEOPSTRUCT myFileOp;
    	myFileOp.hwnd = 0;
    	myFileOp.wFunc =FO_DELETE;
    	myFileOp.fAnyOperationsAborted=true;
    	myFileOp.pFrom = delallemx;	// Hier der Ordner als CString
    	myFileOp.fFlags = FOF_NOCONFIRMATION;
    	myFileOp.lpszProgressTitle = "Lösche EMX-Ordner";
    
    	if(SHFileOperation(&myFileOp)==0)//in dieser Zeile crasht es
    	{
    		delem=true;//zur weiteren verwendung später....
    	}
    

  • Mod

    Wie so oft löst sich das Problem wenn man die Doku liest.

    pTo
    LPCTSTR
    Note This string must be double-null terminated.

    A pointer to the destination file or directory name. This parameter must be set to NULL if it is not used. Wildcard characters are not allowed. Their use will lead to unpredictable results.

    pTo ist nicht gesetzt und damit Garbage.
    Du solltest Strukturen vor der Verwednung immer mit ZeroMemory initialisieren. 0 ist meistens der Default Wert.



  • ZeroMemory(&myFileOp, sizeof(myFileOp));
    

    Just gefunden. Trotzdem Danke! 😃


Anmelden zum Antworten