繁体   English   中英

Writefile导致崩溃,访问冲突

[英]Writefile causes crash, with access violation

所以基本上我希望将一个字节数组写入文件,但程序崩溃了。 append.exe中0x7766DEE1(KernelBase.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000000。

BYTE *image ;
BYTE *bigMem;
#define REASONABLY_LARGE_BUFFER 16777216
file = CreateFile(fileName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

fileSize = GetFileSize(file, NULL);

bigMem = (BYTE *)HeapCreate(NULL, REASONABLY_LARGE_BUFFER, 0);
image = (BYTE *)HeapAlloc(bigMem, HEAP_ZERO_MEMORY, fileSize);
if (bigMem == NULL || image == NULL){
    printf("Allocation failed");
    return EXIT_FAILURE;
}
printf("We are writing to the file %p, with data location %p, and filesize %d\n", file, image, fileSize);
LPDWORD at = 0;
WriteFile(file, image, fileSize, at, NULL);

该印刷品说:我们正在写入文件00000038,数据位置为02451590,文件大小为161169

传递给自变量WriteFile用于存储写入(字节数at只能为空如果用于重叠结构的参数不是 null。 我建议将其更改at DWORD并将指针传递给它。

DWORD at;
WriteFile(file, image, fileSize, &at, NULL);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM