内存占用的一些小问题

一.VirtualFreeEx 释放内存失败-错误码 87

  

mFuncAddr = VirtualAllocEx(hProcess, NULL, 1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

//远程申请了1000个字节大小的内存区域,权限为可读,可写,可执行

 

VirtualFreeEx(hProcess, mFuncAddr, 1000, MEM_RELEASE);   //错误写法

//原本第三个参数,写的是1000,但是,在释放内存的时候,发现内存释放不掉,一直在占用。

//因为,第4个参数,如果选择MEM_RELEASE,意思是,释放从这个地址开始,申请的全部占用内存,第三个参数,就赋值0就好了。否则,报错。

 

 

VirtualFreeEx(hProcess, mFuncAddr, 0, MEM_RELEASE);   //正确写法

 

posted @ 2020-09-20 20:59  羽行  阅读(357)  评论(0编辑  收藏  举报