我用cheating engine搜索到了我游戏内存里放金币的地址,然后用c语言在visual c++ 6.0写了个代码想读那地址内存里的数据,可是提示内存访问出错,为什么cheating engine能访问,我写的不能??我写的代码如下:
#include <stdio.h>
#include <string.h>void main()
{
char *p; p=(int*)0x081D0730;//这是我用cheating engine读到的地址
printf("%d\n",*p);
}望大虾门指教,我编译没错,运行就错了

解决方案 »

  1.   

    上面的程序有两点错误 1.把一个int* 赋给 char* 2. 你把一个地址直接赋给指针这样是有害的
      

  2.   

    p地址上面也没写什么,lz想打印到什么
      

  3.   

    是这样的我用cheating engine读到了一个网游存放金币的地址,但我用c去读那个地址的内存却不能访问,把char *p;改成int *p也一样;运行都是内存访问出错,可cheating engine就能读取,是什么原因
      

  4.   

    不能直接跨进程访问数据的,否则会出现非法访问错误。
    要用ReadProcessMemory、WriteProcessMemory。
      

  5.   

    ReadProcessMemory、WriteProcessMemory
    这是c++的还是c的函数,大虾这函数我没用过不懂,我在搞c啥
      

  6.   

    楼主是想用这个程序去游戏的地址
    但是这个程序的进程空间不能直接对游戏进程空间的访问
    需要用ReadProcessMemory、WriteProcessMemory
      

  7.   

    但我不知道ReadProcessMemory、WriteProcessMemory是c语言还是c++的,我刚学c,如果ReadProcessMemory、WriteProcessMemory是c++的,那我用它读取内存的值然后放在c变量对应地址所在的内存,这样行吗?如不行我还要学c++??
      

  8.   

    和语言无关。操作系统。每个进程有自己的地址空间,你的main和游戏不在一个地址空间,0x081D0730并不指向金币。
    ReadProcessMemory、WriteProcessMemory是windows的api,用c和c++都可以调用。
      

  9.   

    我已经知道了,读别的进程的内存我原理知道了,c是在dos的时代诞生的,不知道能否实现鼠标键盘的控制