Delen via


Virtuele adresruimte (programmeerhandleiding voor 64-bits Windows)

Standaard hebben 64 bitstoepassingen van Microsoft Windows een adresruimte in de gebruikersmodus van verschillende terabytes. Zie Geheugenlimieten voor Windows- en Windows Server-releasesvoor nauwkeurige waarden. Toepassingen kunnen echter opgeven dat het systeem alle geheugen moet toewijzen voor de toepassing onder de 2 gigabyte. Deze functie is nuttig voor 64-bits toepassingen als aan de volgende voorwaarden wordt voldaan:

  • Een adresruimte van 2 GB is voldoende.
  • De code bevat veel afkappingswaarschuwingen voor aanwijzers.
  • Aanwijzers en gehele getallen worden vrij gemengd.
  • De code heeft polymorfisme met behulp van 32-bits gegevenstypen.

Alle aanwijzers zijn nog steeds 64-bits aanwijzers, maar het systeem zorgt ervoor dat elke geheugentoewijzing onder de limiet van 2 GB valt, zodat als de toepassing een aanwijzer afkapt, er geen significante gegevens verloren gaan. Aanwijzers kunnen worden afgekapt tot 32-bits waarden en vervolgens worden uitgebreid tot 64-bits waarden door de tekenextensie of de extensie nul.

Als u deze geheugenbeperking wilt opgeven, gebruikt u de optie /LARGEADDRESSAWARE:NO linker. Houd er rekening mee dat /LARGEADDRESSAWARE:NO wordt genegeerd voor een ARM64-binair bestand. Houd er echter rekening mee dat er problemen kunnen optreden bij het gebruik van deze optie. Als u een DLL maakt die gebruikmaakt van deze optie en het DLL-bestand wordt aangeroepen door een toepassing die deze optie niet gebruikt, kan de DLL een 64-bits aanwijzer afkappen waarvan de bovenste 32 bits aanzienlijk zijn. Dit kan zonder waarschuwing een toepassingsfout veroorzaken.