Чтение файла

Тема в разделе "WASM.BEGINNERS", создана пользователем ricke, 11 май 2009.

  1. ricke

    ricke New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2008
    Сообщения:
    12
    Всем привет.
    Проблема такая читаю файл в буффер таким образом:
    Код (Text):
    1.     HANDLE hFile = CreateFile( "C:\\temp.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
    2.  
    3.     if ( hFile == INVALID_HANDLE_VALUE )
    4.     {
    5.         printf("[-]hFile invalid handle\n");
    6.         return 0;
    7.     }
    8.  
    9.     DWORD FileSize = 0;
    10.  
    11.     GetFileSize( hFile, &FileSize );
    12.  
    13.     char *ReadBuffer = (char*)Allocate( FileSize );
    14.  
    15.     DWORD lpNumberOfBytesRead  = 0;
    16.    
    17.     ReadFile( hFile, ReadBuffer, FileSize, &lpNumberOfBytesRead, 0 );
    в ReadBuffer оказывается null, если же
    Код (Text):
    1. char *ReadBuffer = (char*)Allocate( FileSize );
    заменить на
    Код (Text):
    1. char ReadBuffer[4096];
    и соответственно:
    Код (Text):
    1. ReadFile( hFile, ReadBuffer, 4096, &lpNumberOfBytesRead, 0 );
    то всё нормально.
    вопрос такой как можно весь файл в буффер прочитать?
     
  2. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Прочитай что делает GetFileSize, и посмотри как ты её используешь.
     
  3. ricke

    ricke New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2008
    Сообщения:
    12
    TSS
    блин, облажался :)
    спасибо большое)