Memory 32位进程如何使用近4GB内存?

Memory 32位进程如何使用近4GB内存?,memory,32-bit,virtual-memory,Memory,32 Bit,Virtual Memory,我认为一个32位进程最多可以使用2GB的RAM,因为有一半的地址空间是为操作系统保留的(可能是3GB的/3GB开关)。然而,星际争霸II使用了近4GB的32位EXE。Process Explorer显示: 4,000,896 KB private bytes 3,928,164 KB working set 它是如何做到这一点的?我如何在自己的程序中做到这一点?在.NET中可能吗?在非托管C++中?在托管C++中,在64位OS 32位进程中,< p>可以使用4GB? 标记为“大地址空间感知”的

我认为一个32位进程最多可以使用2GB的RAM,因为有一半的地址空间是为操作系统保留的(可能是3GB的/3GB开关)。然而,星际争霸II使用了近4GB的32位EXE。Process Explorer显示:

4,000,896 KB private bytes
3,928,164 KB working set

它是如何做到这一点的?我如何在自己的程序中做到这一点?在.NET中可能吗?在非托管C++中?在托管C++中,在64位OS 32位进程中,

< p>可以使用4GB? 标记为“大地址空间感知”的进程在32位操作系统中最多可以使用3GB,在64位操作系统中最多可以使用完整的地址空间


这里有更多的讨论:。

谢谢,这就解释了。我想没有.NET的等价物?应该支持它。。。这里有一个关于如何做的问题(我认为在VS/CSC中有一个选项,但不需要使用editbin,就像Win32应用一样)。