Я пытаюсь прочитать файл, используя readfile, сохранить его в широкий массив, а затем записать его в другой файл.Проблема в том, что когда я помещаю их рядом в HxD, некоторые байты являются правильными (текст, например), но все остальное совершенно другое.Я также не могу запустить его
struct a
{
BYTE* buff;
long siz;
};
int main()
{
HANDLE hFile;
a struct_a;
if (hFile = CreateFileW(L"C:\\Windows\\System32\\notepad.exe", GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr))
{
long lFileSize = GetFileSize(hFile, nullptr);
if (lFileSize)
{
struct_a.siz = lFileSize;
struct_a.buff = new BYTE[struct_a.siz];
if (ReadFile(hFile, struct_a.buff, struct_a.siz,
nullptr, nullptr))
{
CloseHandle(hFile);
}
}
}
HANDLE h = CreateFileA("C:\\Users\\USER\\Desktop\\notepad_new.exe", GENERIC_WRITE, FILE_SHARE_WRITE, nullptr,
CREATE_NEW, FILE_ATTRIBUTE_NORMAL, nullptr);
WriteFile(h, struct_a.buff, struct_a.siz, nullptr, nullptr);
return 0;
}
Я хочу, чтобы он мог правильно прочитать файл, а затем записать его и дать мне возможность его запустить.
КакВ качестве бонуса я также попытался записать несколько байтов в конец файла, прочитав его, выполнив команду
struct_a.buff[struct_a.siz - 5] = L'A';
, но он нигде не появлялся.Но когда я попытался написать его вначале (снимая скобки), он написал это отлично.
РЕДАКТИРОВАТЬ: Я попытался прочитать его потом, и он прочитал правильное письмо довольно странно
РЕДАКТИРОВАТЬ 2: Изображение выпуска: