如何读出地址为ad的植到as中,ad的地址会不断变化,碰到无效地址时如何避免非法操作?
DWORD ad=0x00400000
int as;

解决方案 »

  1.   

    LPDWORD lpdw = (LPDWORD)0x00400000;
    if ( IsBadReadPtr(lpdw, 4))
    {
       DWORD dw = *lpdw;
       cout << dw << endl;
    }
      

  2.   

    不好意思, 上面的错了, 应该这样:LPDWORD lpdw = (LPDWORD)0x00400000;
    if ( !IsBadReadPtr(lpdw, 4))
    {
       DWORD dw = *lpdw;
       cout << dw << endl;
    }
      

  3.   

    上面说得很对,把4改成sizeof(DWORD)好像更好些
      

  4.   

    在NT下要非法操作,有没有类似ReadProcessMemory的api啊?