gpt4 book ai didi

winapi - 大地址感知标志如何在 64 位计算机上用于 32 位应用程序?

转载 作者:行者123 更新时间:2023-12-02 01:37:20 25 4
gpt4 key购买 nike

我读到过,32 位 Windows 应用程序仅限于 2 GB RAM,因为上面的 2GB 寻址空间是为 Windows 操作系统(以及 iirc、VRAM)保留的。如果您在 32 位 WinXp 上使用/3GB 标志,您可能会获得最多 3 GB 的 RAM 可用于寻址,但通常您必须调整 userva 值。我听说在 64 位版本的 Windows 上,PE header 中具有较大的地址感知标志和超过 4 GB 的 RAM,应用程序可以使用所有 4 GB 的寻址空间进行自己的内存管理。

另一方面,我非常确定当您调用 Windows API 时,您必须调用所提供的 32 位地址空间内的内存位置。那么,32 位大地址感知应用程序在 64 位环境中究竟可以使用多少 RAM?为什么?

谢谢。

最佳答案

虚拟地址空间扩展至4GB。如果您不使用Address Windowing Extension API ,您可以访问的最大内存量为 4GB。其中一些空间将被操作系统占用用于 .dll 和其他此类内容,但您可以收回使用所有 32 位指针的内存。

顺便说一句,如果您不知道大地址,则所有内存指针在转换为 INT_PTR 时都不会为负。这实际上是使用大地址感知标志时产生多个细微错误的根源,因为指针被视为有符号值。

关于winapi - 大地址感知标志如何在 64 位计算机上用于 32 位应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5185406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com