我有下面的代碼:C++ ReadFile的崩潰問題
HANDLE hFile = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING, 0, NULL);
std::cout << "File Handle: " << hFile << std::endl;
DWORD fileSize = GetFileSize(hFile, NULL);
PVOID fileBuffer = VirtualAlloc(NULL, fileSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
if (!fileBuffer) std::cout << "Couldn't allocate memory " << GetLastError() << std::endl;
// Read the DLL
if (!ReadFile(hFile, fileBuffer, fileSize, NULL, NULL)) std::cout << "Failed to read file " << GetLastError() << std::endl;
我KernelBase.dll每個我打電話ReadFile的時候得到一個訪問衝突(0000005)。 此外,的CreateFile顯示
File Handle: 0000000000000040
所有的時間,我也不太清楚,如果這是正常的正常處理與否。
Full Code, with error from debugger, VS2017
編輯:如果我打印的文件的大小,它示出了18
該代碼工作正常,我讀一個160MB左右的文件。如果錯誤出現在您未顯示的代碼中,您可能會顯示一個完整的示例。 –
我試着只執行我從主函數上面發佈的代碼(沒有其他任何東西),它仍然崩潰 – NVMESSD
發佈完整的代碼和任何錯誤,你在問題的正文中得到的文本。 –