私は、次のコードを持っている:私はReadFile関数を呼び出すKernelBase.dllたびにアクセス違反(0xC0000005)取得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;
を。 はまた、CreateFileのは、私はそれが通常のノーマルハンドルだかどうあまりにもわからないんだけど、
File Handle: 0000000000000040
すべての時間を示しています。
Full Code, with error from debugger, VS2017
編集:私は、ファイルサイズを印刷する場合、それはReadFile関数のMSDNドキュメントから18
このコードは正常に動作します。表示されていないコードにエラーがある場合は、完全な例を示すことができます。 –
私は上記のメイン機能から何もせずに投稿したコードだけを実行しようとしましたが、それでもクラッシュします。 – NVMESSD
質問の本文にテキストとして表示される完全なコードとエラーを投稿してください。 –