C++ 如何增加Windows Mobile上进程的可用内存?
我的进程可用的虚拟内存量是32MB,但实际内存要多得多。是否有一种方法(例如函数调用或项目属性)可以增加此限制?我发现极限非常……极限 我正在打电话查看用法。如果有什么东西可以设置C++ 如何增加Windows Mobile上进程的可用内存?,c++,c,winapi,windows-mobile,C++,C,Winapi,Windows Mobile,我的进程可用的虚拟内存量是32MB,但实际内存要多得多。是否有一种方法(例如函数调用或项目属性)可以增加此限制?我发现极限非常……极限 我正在打电话查看用法。如果有什么东西可以设置dwTotalVirtual成员,那就是有帮助的 谢谢 不,没有办法增加。Windows CE 5.0及更早版本对支持的32个同时进程中的任何一个都有一个32MB的硬内存限制。它是内核的一部分 现在值得一提的是,并非所有分配都来自这32MB。从文档(和经验)中: 如果调用时dwSize>=2MB,flAllocatio
dwTotalVirtual
成员,那就是有帮助的
谢谢 不,没有办法增加。Windows CE 5.0及更早版本对支持的32个同时进程中的任何一个都有一个32MB的硬内存限制。它是内核的一部分 现在值得一提的是,并非所有分配都来自这32MB。从文档(和经验)中: 如果调用时dwSize>=2MB,flAllocationType设置为MEM_RESERVE,flProtect设置为PAGE_NOACCESS,则会自动在共享内存区域中保留内存。这将保留每个进程的虚拟内存
这意味着您可以在不影响32MB插槽限制的情况下虚拟化大区域并使用它。谢谢。确认:使用WriteProcessMemory和ReadProcessMemory访问此内存的唯一方法是什么?从技术上来说,答案是“视情况而定”。对于CE 5.0和更早版本,共享内存实际上没有受到保护,因此您可以读取和写入VirtualAlloc返回的指针。这不是一种“正确”的方法,这只是操作系统的一个基本缺陷,它没有保护允许它工作的内存。该缺陷已在CE6.0中更正,因此直接指针操作使代码无法移植到CE6或7。