Files
2025-06-15 13:06:50 +02:00

56 lines
1019 B
C++

#include "BinaryFileReader.h"
namespace BinaryFileReader
{
BinaryFileReader::BinaryFileReader(const wchar_t* fileName)
{
_buffer = nullptr;
_bufferSize = 0;
HANDLE fileHandle = CreateFileW(fileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (fileHandle == INVALID_HANDLE_VALUE)
{
Cleanup();
return;
}
_bufferSize = GetFileSize(fileHandle, NULL);
if (_bufferSize == INVALID_FILE_SIZE)
{
Cleanup();
CloseHandle(fileHandle);
return;
}
_buffer = new BYTE[_bufferSize];
DWORD bytesRead = 0;
BOOL result = ReadFile(fileHandle, _buffer, _bufferSize, &bytesRead, NULL);
CloseHandle(fileHandle);
if (result == FALSE)
{
Cleanup();
}
return;
}
BinaryFileReader::~BinaryFileReader()
{
Cleanup();
}
void BinaryFileReader::Cleanup()
{
if (_buffer != nullptr)
{
delete[] _buffer;
_buffer = nullptr;
}
_bufferSize = 0;
}
}