gpt4 book ai didi

c - VirtualAlloc 为批量文件读取分配内存的问题

转载 作者:可可西里 更新时间:2023-11-01 10:28:47 25 4
gpt4 key购买 nike

我试图从一个二进制文件中读取一些数据到一个用 VirtualAlloc 分配的缓冲区中。问题是我遇到了一个“糟糕的 Pr”问题并且无法执行 fread。这是我的代码:

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);

恐惧 - 失败了。我做错了什么?

谢谢!

最佳答案

您需要传递 MEM_RESERVEMEM_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);

关于c - VirtualAlloc 为批量文件读取分配内存的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com