@AlexsandrLomaev

Как преобразовать большое int в byte?

Есть код:
public void WriteBytes()
        {
            const int Offset = 0x4AC;
            var adress = 0x018D7270;
            var bytesSize = 1;
            byte[] bytes = { Offset };
            var w = new IntPtr();
            var hendl = OpenProcess(0x001F0FFF, false, ProcessID);
            WriteProcessMemory(hendl, (IntPtr)adress, bytes, (int)bytesSize, out w);
            CloseHandle(hendl);
        }

И вот в этой строчке byte[] bytes = { Offset }; компилятор ругается - не удается преобразовать константы "1196" в байты.

Как мне это исправить?
  • Вопрос задан
  • 414 просмотров
Решения вопроса 1
@cicatrix
было бы большой ошибкой думать
int value = 1196;
var bytes = BitConverter.GetBytes(value);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Или
var offset = 0x4AC;
Span<byte> bytes = stackalloc byte[sizeof(int)];
BinaryPrimitives.WriteInt32LittleEndian(bytes, offset);
// Дальше можно передать указатель на bytes в WriteProcessMemory. Даже не обязательно преобразовывать в массив


BinaryPrimitives.WriteInt32
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы