Kann keine dateien überschreiben?!



  • void SaveToFile(char *pFilename, char *pBuffer, int nSize) 
    {
    	HANDLE hf;
    	hf = CreateFile(pFilename, GENERIC_WRITE, FILE_SHARE_READ, (LPSECURITY_ATTRIBUTES) NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL);
    	unsigned long nBytesRead;
    	WriteFile(hf , pBuffer, nSize, &nBytesRead, NULL);
    }
    

    wieso kann ich damit keine dateien überschreiben? mit GENERIC_WRITE müsste das doch gehen?!
    ich kriege auch keinen fehler...die datei wird einfach nicht geändert!



  • Man kann auch Fehler im Quellcode überprüfen, die Funktion GetLastError() bietet sich dafür geradezu an...



  • wo kann ich die error codes checken? ich krieg die 53 !
    edit: ups habs!
    edit2:
    53 The network path was not found. ERROR_BAD_NETPATH
    😮 wieso ? network? ich lass mir den error so anzeigen:

    char *err = new char;
    	itoa(GetLastError(),err,36);
    	MessageBox(NULL, err , "",0)
    

    aber da kann doch was nicht stimmen!

    egal, mit CloseHandle geht jetzt trotzdem alles....



  • pixartist schrieb:

    char *err = new char;
    	itoa(GetLastError(),err,36);
    	MessageBox(NULL, err , "",0)
    

    aber da kann doch was nicht stimmen!

    Wieso Basis 36?

    Für Dualzahlen nimmt man da 2, für Dezimalzahlen 10 und für Hex-Zahlen 16.
    Tu Dir doch endlich mal selbst den Gefallen und fang an ein C-Tutorial durchzuackern. So hat das doch gar keinen Sinn, was Du da machst...



  • In der MSDN/PSDK steht unter "FormatMessage" auch noch nen Beispiel wie man direkt die Fehlermeldung statt dem Fehlercode ausgeben kann...


Anmelden zum Antworten