WriteFile geht net :(



  • Hi,

    wieso schmiert der mir hier ab?

    HANDLE file = CreateFile(L"original.txt", 
            GENERIC_WRITE,                 
            0,                   
            NULL,                    
            CREATE_ALWAYS,              
            FILE_ATTRIBUTE_NORMAL, 
            NULL);
    
        wchar_t buffer[] = L"Hallo, dies ist ein Test";
        WriteFile (file, (void*)&buffer, wcslen (buffer)*2, NULL, NULL); // <<
        CloseHandle (file);
    

    An welcher stelle ist der Code falsch?



  • Dein "buffer" ist schon ein Zeiger und machst einen Zeiger auf einen Zeiger... Fazit: casten ist immer schlecht...

    DWORD dwBytesWritten;
    WriteFile (file, buffer, wcslen (buffer)*2, &dwBytesWritten, NULL);
    

    Nebenbei sei noch angemekrt, dass wenn Du L verwendest Du auch die passenden W-Funktionen verwendest solltest:

    CreateFileW(L"original.txt, ...
    

    Add: Wie mein Nachredner gesagt hat fehlt natprlich noch ein Parameter...



  • LPDWORD lpNumberOfBytesWritten,


Anmelden zum Antworten