ReadProcessMemory函数读取基址时输出却变成了一个地址,请教一下大家

我用ReadProcessMemory函数想读出QQ对对碰游戏的棋盘数组的数据可是输出的却是一个地址,但是用同样的方法读取座位号的基址就可以正确输出作为号,所以想请教一下大家这是什么原因,以下是代码:出问题的那一部分我变成绿色了。


#include "windows.h"

#include <iostream.h>

class jubing
{
public:

HWND ctjubing; //定义一个HWND(也是一种句柄)类型的变量用来存放窗体句柄,这里千万别搞错了
DWORD pid; //存放进程id
HANDLE jcjubing; //定义一个HANDLE(句柄)类型的变量用来存放进程句柄,这里千万别搞错了
int zwh;  //定义一个用来保存座位号的变量


int chuangtijubing(); //在类里面声明一个成员函数获得窗体句柄(函数的定义部分在下面)
int jinchengid();     //在类里面声明一个成员函数获得进程ID  (函数的定义部分在下面)
int jinchengjubing(); //在类里面声明一个成员函数获得进程句柄(函数的定义部分在下面)
int zuoweihao();      //在类里面声明一个成员函数获得座位号  (函数的定义部分在下面)

};
///
///
//类成员函数的定义部分

jubing::chuangtijubing() //上面声明的函数这里写定义部分(返回窗体句柄&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 错误代码299表示进程停止或在读取进程内存发生了意外的错误。这个错误可能由许多原因引起,例如目标进程已经结束或者被其他进程占用等。以下是一些可能的解决方案: 1. 确认目标进程是否在运行状态,如果目标进程已经结束,则无法读取其内存。 2. 确认是否具有足够的权限进行读取进程内存的操作,如果没有足够的权限,则需要以管理员身份运行程序。 3. 尝试使用更高版本的Visual Studio,例如Visual Studio 2019或Visual Studio 2022。 4. 确认目标进程是否运行在与当前程序相同的位数(32位或64位)上,如果不是,则无法读取其内存。 5. 确认目标进程是否允许读取进程内存的操作,如果没有允许,则需要修改目标进程的权限设置。 6. 如果以上方法都无法解决问题,则可以尝试使用其他API函数读取进程内存,例如使用Windows API中的ReadProcessMemory函数读取进程内存。 ### 回答2: VS2019中使用`ReadProcessMemory`函数读取另一个进程的内存,可能会遇到错误代码299。这个错误代码是由于`ReadProcessMemory`函数无法访问指定的内存地址而引起的。 造成这个错误的原因可能有以下几种: 1. 无法打开目标进程:在调用`ReadProcessMemory`函数之前,需要使用`OpenProcess`函数打开目标进程的句柄。如果无法打开目标进程,就无法读取其内存。请确保在调用`ReadProcessMemory`函数之前成功打开了目标进程,并获得了合法的句柄。 2. 目标内存地址无效:如果要读取的内存地址是无效的或未分配的,`ReadProcessMemory`函数将无法访问该地址并返回错误代码299。请确保要读取的内存地址是有效的。 3. 权限不足:某些内存区域可能被保护,以防止其他进程读取或写入。如果要读取的内存地址位于受保护的区域内,`ReadProcessMemory`函数将无法访问该地址并返回错误代码299。请确保您正使用适当的权限来读取所需的内存区域。 4. 缓冲区大小不足:如果传递给`ReadProcessMemory`函数的缓冲区大小不足以存储要读取的内存数据,函数将无法成功读取并返回错误代码299。请确保传递给`ReadProcessMemory`函数的缓冲区大小足够大。 以上是常见导致调用`ReadProcessMemory`函数失败并返回错误代码299的原因。请检查相关问题并进行相应的修复,以确保成功读取目标进程的内存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值