Marshal.AllocHGlobal Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wijst geheugen toe vanuit het onbeheerde geheugen van het proces.
Overloads
| Name | Description |
|---|---|
| AllocHGlobal(Int32) |
Hiermee wijst u geheugen toe aan het onbeheerde geheugen van het proces met behulp van het opgegeven aantal bytes. |
| AllocHGlobal(IntPtr) |
Wijst geheugen toe vanuit het onbeheerde geheugen van het proces met behulp van de aanwijzer naar het opgegeven aantal bytes. |
AllocHGlobal(Int32)
Hiermee wijst u geheugen toe aan het onbeheerde geheugen van het proces met behulp van het opgegeven aantal bytes.
public:
static IntPtr AllocHGlobal(int cb);
[System.Security.SecurityCritical]
public static IntPtr AllocHGlobal(int cb);
public static IntPtr AllocHGlobal(int cb);
[<System.Security.SecurityCritical>]
static member AllocHGlobal : int -> nativeint
static member AllocHGlobal : int -> nativeint
Public Shared Function AllocHGlobal (cb As Integer) As IntPtr
Parameters
- cb
- Int32
Het vereiste aantal bytes in het geheugen.
Retouren
nativeint
Een aanwijzer naar het zojuist toegewezen geheugen. Dit geheugen moet worden vrijgegeven met behulp van de FreeHGlobal(IntPtr) methode.
- Kenmerken
Uitzonderingen
Er is onvoldoende geheugen om aan de aanvraag te voldoen.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de AllocHGlobal methode aanroept. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de Marshal klasse.
// Demonstrate how to call GlobalAlloc and
// GlobalFree using the Marshal class.
IntPtr hglobal = Marshal::AllocHGlobal(100);
Marshal::FreeHGlobal(hglobal);
// Demonstrate how to call GlobalAlloc and
// GlobalFree using the Marshal class.
IntPtr hglobal = Marshal.AllocHGlobal(100);
Marshal.FreeHGlobal(hglobal);
' Demonstrate how to call GlobalAlloc and
' GlobalFree using the Marshal class.
Dim hglobal As IntPtr = Marshal.AllocHGlobal(100)
Marshal.FreeHGlobal(hglobal)
Opmerkingen
Important
Deze systeemeigen geheugentoewijzing is een verouderde API die uitsluitend moet worden gebruikt wanneer deze wordt aangeroepen door specifieke Win32-API's op het Windows-platform. Wanneer u zich richt op .NET 6 of hoger, gebruikt u de klasse NativeMemory op alle platforms om systeemeigen geheugen toe te wijzen. Wanneer u zich richt op .NET Framework, gebruikt u AllocCoTaskMem op alle platforms om systeemeigen geheugen toe te wijzen.
AllocHGlobal is een van de twee methoden voor geheugentoewijzing in de Marshal klasse. (Marshal.AllocCoTaskMem is de andere.) Met deze methode wordt de functie Win32 LocalAlloc van Kernel32.dllweergegeven.
Wanneer AllocHGlobal u aanroept LocalAlloc, wordt er een LMEM_FIXED vlag doorgegeven, waardoor het toegewezen geheugen wordt vergrendeld. Bovendien is het toegewezen geheugen niet gevuld met nul.
Zie ook
Van toepassing op
AllocHGlobal(IntPtr)
Wijst geheugen toe vanuit het onbeheerde geheugen van het proces met behulp van de aanwijzer naar het opgegeven aantal bytes.
public:
static IntPtr AllocHGlobal(IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr AllocHGlobal(IntPtr cb);
public static IntPtr AllocHGlobal(IntPtr cb);
[<System.Security.SecurityCritical>]
static member AllocHGlobal : nativeint -> nativeint
static member AllocHGlobal : nativeint -> nativeint
Public Shared Function AllocHGlobal (cb As IntPtr) As IntPtr
Parameters
- cb
-
IntPtr
nativeint
Het vereiste aantal bytes in het geheugen.
Retouren
nativeint
Een aanwijzer naar het zojuist toegewezen geheugen. Dit geheugen moet worden vrijgegeven met behulp van de FreeHGlobal(IntPtr) methode.
- Kenmerken
Uitzonderingen
Er is onvoldoende geheugen om aan de aanvraag te voldoen.
Opmerkingen
Important
Deze systeemeigen geheugentoewijzing is een verouderde API die uitsluitend moet worden gebruikt wanneer deze wordt aangeroepen door specifieke Win32-API's op het Windows-platform. Wanneer u zich richt op .NET 6 of hoger, gebruikt u de klasse NativeMemory op alle platforms om systeemeigen geheugen toe te wijzen. Wanneer u zich richt op .NET Framework, gebruikt u AllocCoTaskMem op alle platforms om systeemeigen geheugen toe te wijzen.
AllocHGlobal is een van de twee methoden voor geheugentoewijzing in de Marshal klasse. (Marshal.AllocCoTaskMem is de andere.) Met deze methode wordt de functie Win32 LocalAlloc van Kernel32.dllweergegeven.
Wanneer AllocHGlobal u aanroept LocalAlloc, wordt er een LMEM_FIXED vlag doorgegeven, waardoor het toegewezen geheugen wordt vergrendeld. Bovendien is het toegewezen geheugen niet gevuld met nul.
Zie Marshal en AllocHGlobal.