我遇到的问题是“地址值:”部分。 基本上,如果我不将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";
}
答案 0 :(得分:0)
如果只读取一个字节,则需要将其读入一个字节的整数:
uint8_t healthVar;
然后,当你将值(255)读入那里时,你可以这样打印:
cout << unsigned(healthVar) << endl;
请注意,您不能简单地打印healthVar
,因为在C ++中,一个字节的整数将作为字符打印。