(C++)ReadProcessMemory-读取一个字节时出现问题

(C++) ReadProcessMemory - Problems with reading one byte

本文关键字:问题 字节 C++ ReadProcessMemory- 读取 一个      更新时间:2023-10-16

我遇到的问题在"地址值:"部分。基本上,如果我不将byteSize设置为4(int),它将cout-858993409作为地址值。0x242E1698处的4个字节为FF 00 00 00。如果我把byteSize设置为4,它将输出255(正如我希望的那样)。有没有办法只读取一个字节就输出255?

int byteSize = 1;       
if (!ReadProcessMemory(hProcess, (void *)0x242E1698, (void *)&healthVar, byteSize, NULL))
    cout << "Failed to read " << windowName << "'s memory!nn";
else
{
    cout << "Address value: " << healthVar << "nn";
}

如果只读取一个字节,则需要将其读取为一个字节整数:

uint8_t healthVar;

然后,一旦你在那里读取了你的值(255),你就可以这样打印:

cout << unsigned(healthVar) << endl;

请注意,您不能简单地打印healthVar,因为在C++中,一个一字节的整数将被打印为字符。