Здравствуйте. Например, есть файл, я его открываю. Но как мне представить его в бинарном виде, чтобы считать первые 2 байта из него? Если быть конкретно, то мне нужно сравнивать первые 2 байта с 0x4D 0x5A. Гуглил, но так и не понял, каким образом преобразовать в массив байтов файл, который я получаю через CreateFile()
но так и не понял, каким образом преобразовать в массив байтов файл, который я получаю через CreateFile()
Это шедевр я считаю! Никогда не встречал настолько завуалированное название операции "чтения из файла" :)
Когда вы открываете файл, то в системе просто создается некая ссылка на этот файл, никаких данных из файла в памяти еще нет. Чтоб данные появились в памяти их надо из файла прочитать.
Аналогично, чтоб данные появились в файле их надо записать.
Это отдельные операции и вызовы.
Зачем вы сразу залезли в WinAPI? Это сложно.
Купите учебник по плюсам. В любом учебнике есть описание работы с файлами.
В стандартной библиотеки С++ есть объекты для работы с файлами. Это на много проще, чем WinAPI.
res2001, Вы не поняли, что мне нужно. Во всех учебниках описываются работа с fstream. Но мне нужно прочитать файл побайтово, чтобы сравнить сигнатуру (первые 2 байта должны быть 0x4D 0x5A), такого функционала там нет
Haaaaz, Ссылку открой, там пример как раз для тебя: std::ifstream is{"test.txt", std::ios::binary}
В примере в конструктор передается еще std::ios::ate - это заставляет сделать переход в конец файла сразу после открытия. В примере это нужно для того, что бы узнать длину файла. Тебе это не нужно, так что ate не указывай.