Avatar billede narrr Nybegynder
30. august 2003 - 18:15 Der er 7 kommentarer og
1 løsning

Fejl 87

Hey. Hvorfor får jeg fejl 87(ERROR_INVALID_PARAMETER) når jeg prøver dette?
---
HANDLE hFile = CreateFile("\\\\.\\C:", GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
   
    char buffer[1000000];
    DWORD size;
   
    ReadFile(hFile, &buffer, 1000000, &size,NULL);
    cout << GetLastError()<<endl;
    CloseHandle(hFile);
---
Avatar billede narrr Nybegynder
30. august 2003 - 18:16 #1
og hFile er ikke == INVALID_HANDLE_VALUE.
Avatar billede soreno Praktikant
30. august 2003 - 18:19 #2
Fejl 87 defineres som:
#define ERROR_INVALID_PARAMETER 87L

Altså må du have et invalidt param.

Kig evt. lidt her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp
Avatar billede narrr Nybegynder
30. august 2003 - 18:21 #3
Tak, det er jeg klar over, jeg aner bare ikke hvilket.
Avatar billede soreno Praktikant
30. august 2003 - 18:21 #4
Eller kan det være:
ReadFile(hFile, &buffer, 1000000, &size,NULL);

Skal være:
ReadFile(hFile, buffer, 1000000, &size, NULL);
Avatar billede narrr Nybegynder
30. august 2003 - 18:23 #5
Stadig fejl 87.
Avatar billede soreno Praktikant
30. august 2003 - 18:27 #6
Du skal vel sætte filepointeren der hvor du vil starte med at læse, noget ala:

sectorNumber = 1;

__int64 tmp64 = (__int64) sectorNumber * 512;
long tmpVal = tmp64 & 0xFFFFFFFF;
long tmpValHi = (tmp64 >> 32);

SetFilePointer(hFile, tmpVal, &tmpValHi, FILE_BEGIN)
Avatar billede narrr Nybegynder
30. august 2003 - 18:37 #7
stadig samme fejl :(
Avatar billede narrr Nybegynder
31. august 2003 - 12:39 #8
Der står i MSDN: "File access must be for numbers of bytes that are integer multiples of the volume's sector size." Derfor er det ikke lovligt at læse 1000000 bytes, men 512000 bytes er derimod OK.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester