(C ++)ReadProcessMemory - 读取一个字节的问题

时间:2016-05-05 07:58:16

标签: c++ memory process

我遇到的问题是“地址值:”部分。 基本上,如果我不将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!\n\n";
else
{
    cout << "Address value: " << healthVar << "\n\n";
}

1 个答案:

答案 0 :(得分:0)

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

uint8_t healthVar;

然后,当你将值(255)读入那里时,你可以这样打印:

cout << unsigned(healthVar) << endl;

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