Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何增加Windows Mobile上进程的可用内存?_C++_C_Winapi_Windows Mobile - Fatal编程技术网

C++ 如何增加Windows Mobile上进程的可用内存?

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

我的进程可用的虚拟内存量是32MB,但实际内存要多得多。是否有一种方法(例如函数调用或项目属性)可以增加此限制?我发现极限非常……极限

我正在打电话查看用法。如果有什么东西可以设置
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。