Проблема VirtualAlloc выделения памяти для массового чтения файлов - PullRequest
2 голосов
/ 27 апреля 2011

Я пытаюсь прочитать некоторые данные из двоичного файла в буфер, выделенный с помощью VirtualAlloc.Проблема в том, что у меня проблема "плохого Pr" и я не могу выполнить фред.Вот мой код:

fseek(myfile,0, SEEK_END);
DWORD FileSize = ftell(myfile);
fseek(myfile,0, SEEK_SET);
BYTE *buf = (BYTE * )VirtualAlloc(NULL,FileSize,MEM_RESERVE, PAGE_EXECUTE_READWRITE);
fread(buf,sizeof(BYTE),1,myfile);

фред - не получается.что я делаю не так?

Спасибо!

1 Ответ

2 голосов
/ 27 апреля 2011

Вам нужно пройти оба MEM_RESERVE и MEM_COMMIT.И вам нужно использовать BYTE *, а не BYTE

fseek(myfile,0, SEEK_END);    
DWORD FileSize = ftell(myfile);    
fseek(myfile,0, SEEK_SET);    
BYTE * buf = (BYTE*)VirtualAlloc(NULL,FileSize,MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
fread(buf,FileSize,1,myfile);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...