读取内存值(实时)最佳实践
Read Memory Values (Real time) Best practice
我已经通过C 成功读取了游戏的数据。现在,我需要阅读它,以使GUI始终具有正确的值。我有两个问题:
-
我在循环时使用无限吗?
while(gameOn) { ReadAddress(1); //Example ReadAddress(2); //Example ReadAddress(3); //Example ReadAddress(4); //Example .... ReadAddress(100); //Example Sleep(200); }
-
您可以看到一个,而循环最终会读取许多游戏值。由于该值是连续的(我怀疑它是一种结构),所以我应该读100个字节并解析它吗?因此,该选项是一次读取100个字节,并相应地处理数据或每次读取1个字节100次。
顺便说一句,这是我的读取功能
int Process::memoryReadByte(int memoryAddress) {
unsigned char buffer = 0;
SIZE_T NumberOfBytesToRead = sizeof(buffer); //this is equal to 1
SIZE_T NumberOfBytesActuallyRead;
BOOL succeed = ReadProcessMemory(hProcess, (LPCVOID)(baseAddress + memoryAddress), &buffer, NumberOfBytesToRead, &NumberOfBytesActuallyRead);
if (!succeed || NumberOfBytesActuallyRead != NumberOfBytesToRead) {
return 0;
}
return buffer;
}
那么,无限的循环很好吗?我不想让我的游戏laggy。无限时,循环听起来很恐怖。
是的,您确实需要使用循环读取内存以保持本地副本的更新。
如果内存是连续的,则应在一个调用readProcessMemory()的一个调用中读取所有连续的内存,然后解析本地缓冲区。这将使您的程序更有效,因为ReadProcessMemory具有多个内部API调用和安全检查等的开销...
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在c代码之间共享数据的最佳方式
- 使用std::source_location报告错误的最佳实践
- 派生类销毁的最佳实践是什么
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 从数据库实时显示QT c++中的数据
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 使用 mlockall() 进行实时应用的最佳方法(纳秒敏感)
- wxWidgets 绘制实时图形的最佳控件
- 读取内存值(实时)最佳实践
- 使用来自不同线程的实时数据更新QTableView的最佳策略
- 在C/C 中实现实时最佳拟合内存分配算法
- 实时应用中图像采集和图像处理的设计模式或最佳实践
- 在实时系统上保存缓存数据的最佳方法是什么
- 存储/缓存实时数据的最佳方式,具有磁盘持久性
- 实时启用/禁用CMenu项的最佳方式
- 在安卓上进行实时图形编程的最佳语言是什么?