ReadProcessMemory(hProcess:Cardinal;      //这个应该是进程句柄吧
                     const lpbaseAddress:Pointer;   //要读取的地址
                     lpBuffer:Pointer;  //缓冲区
                     nSize:Cardinal;  //读取的大小
                     var lpNumberOfBytesRead)  //这个不知道是什么.
我的代码是这样的:  ReadProcessMemory(hProcess,$03467A08,mybuffer,4,0);一直提示错误,不知道那里错误了.好象应该是第3个参数的问题,我在上面已经定义了一个变量:mybuffer:integer; 但是这里提示应该是指针变量,我就不知道这个该怎么写了....高手指教一下啊,谢谢了。在线等.

解决方案 »

  1.   

    最后一个参数是一个Var参数,所以必须是一个变量,而不能是珍上常量:
    var
      C: Ineteger;
    begin
      ReadProcessMemory(hProcess,$03467A08,mybuffer,4,C);
    end;最后一个参数表示实现读取的数量,由函数本身传出
      

  2.   

    定义了一个integer的变量lpNumber加到参数后面,形式为:
      ReadProcessMemory(hProcess,$03467A08,mybuffer,4,lpNumber)
    还是报错,错误信息如下:[Error] Unit1.pas(50): Types of actual and formal var parameters must be identical好象是实参和形参的数据类型必须一致.我不知道哪个不一样了啊..第2个,第3个参数都是指针类型,不知道该怎么去定义......
      

  3.   

    var
    pHandle, pAddr: DWORD;
    mNum, tmpNum: DWORD;
    begin
    ...
    ...
    ...
    pAddr := $010052C4;
      ReadProcessMemory(pHandle, Pointer(pAddr), Pointer(@mNum), 4, tmpNum);
      end;