Only Power Do I Need.

Long-term study, endless practice, strict self-discipline.
随笔 - 16, 文章 - 0, 评论 - 1, 引用 - 0
数据加载中……

VirtualAllocEx

VirtualAllocEx针对进程ID分配了一段内存, 内存中的页有三种状态, 空闲, 保留 和 提交.

向其他程序的ListView控件发送LVM_GETITEMTEXT中直接把申请的内存(应该是一个单独的页)设为了COMMIT.

WINDOWS的每个进程拥有4G的VAS(Virtual Address Space), 2G是与操作系统和其他进程共享的, 2G是独占的.

通过: plvitem=(LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE);
SendMessage(hwnd, LVM_GETITEMTEXT, (WPARAM)iItem, (LPARAM)plvitem);
这两句代码来看,  plvitem的地址在当前进程和hProcess的进程中都可用, 也就是说应该是分配在了那2G共享的VAS中

posted on 2012-04-10 11:43 夜舞 阅读(648) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理