C++ c++;读取文件错误地读取文件, intmain(){ HANDLE source=CreateFile(L“D:\\msgbox.exe”,一般读取,一般写入,0,NULL,打开,存在,文件属性,NULL); 大整数大小; GetFileSizeEx(源代码和大小); char*buff=新字符[size.QuadPart]; 德沃德·德比特斯雷德; ReadFile(source,buff,sizeof(buff),&dwBytesRead,NULL); 无效*缓冲区=(无效*)缓冲区; IMAGE_DOS_HEADER*DOS HEADER=PIMAGE_DOS_HEADER(缓冲区); PIMAGE\u NT\u HEADERS NT=PIMAGE\u NT\u HEADERS((char*)(buffer)+dossheader->e\u lfanew); //使用其他方法正确(0x40000),使用winapi将失败。 cout

C++ c++;读取文件错误地读取文件, intmain(){ HANDLE source=CreateFile(L“D:\\msgbox.exe”,一般读取,一般写入,0,NULL,打开,存在,文件属性,NULL); 大整数大小; GetFileSizeEx(源代码和大小); char*buff=新字符[size.QuadPart]; 德沃德·德比特斯雷德; ReadFile(source,buff,sizeof(buff),&dwBytesRead,NULL); 无效*缓冲区=(无效*)缓冲区; IMAGE_DOS_HEADER*DOS HEADER=PIMAGE_DOS_HEADER(缓冲区); PIMAGE\u NT\u HEADERS NT=PIMAGE\u NT\u HEADERS((char*)(buffer)+dossheader->e\u lfanew); //使用其他方法正确(0x40000),使用winapi将失败。 cout,c++,file,winapi,C++,File,Winapi,sizeof(buff)不是分配的缓冲区的大小,而是指针的大小 使用size.QuadPart而不是作为要读取的大小。sizeof(buff)不是分配的缓冲区的大小,而是指针buff的大小 使用size.QuadPart而不是它作为要读取的大小。您使用了“sizeof(buff)”,这对分配的缓冲区不起作用 一定要使用“size.quad”您已经使用了“sizeof(buff)”,这对分配的缓冲区不起作用 一定要使用“大小。四边形”

sizeof(buff)
不是分配的缓冲区的大小,而是指针的大小

使用
size.QuadPart
而不是作为要读取的大小。

sizeof(buff)
不是分配的缓冲区的大小,而是指针
buff
的大小

使用
size.QuadPart
而不是它作为要读取的大小。

您使用了“sizeof(buff)”,这对分配的缓冲区不起作用 一定要使用“size.quad”

您已经使用了“sizeof(buff)”,这对分配的缓冲区不起作用 一定要使用“大小。四边形”