Marshal.AllocHGlobal Metod

Definition

Allokerar minne från det ohanterade minnet i processen.

Överlagringar

Name Description
AllocHGlobal(Int32)

Allokerar minne från ohanterat minne i processen med det angivna antalet byte.

AllocHGlobal(IntPtr)

Allokerar minne från ohanterat minne i processen med hjälp av pekaren till det angivna antalet byte.

AllocHGlobal(Int32)

Allokerar minne från ohanterat minne i processen med det angivna antalet byte.

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

Parametrar

cb
Int32

Det antal byte som krävs i minnet.

Returer

IntPtr

nativeint

En pekare till det nyligen allokerade minnet. Det här minnet måste frigöras med hjälp av FreeHGlobal(IntPtr) metoden .

Attribut

Undantag

Det finns inte tillräckligt med minne för att uppfylla begäran.

Exempel

I följande exempel visas hur du anropar AllocHGlobal metoden. Det här kodexemplet är en del av ett större exempel för Marshal klassen.

// 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)

Kommentarer

Important

Den här interna minnesallokeraren är ett äldre API som ska användas exklusivt när det anropas av specifika Win32-API:er på Windows-plattformen. När du riktar in dig på .NET 6 eller senare använder du klassen NativeMemory på alla plattformar för att allokera inbyggt minne. När du riktar in dig på .NET Framework använder du AllocCoTaskMem på alla plattformar för att allokera inbyggt minne.

AllocHGlobal är en av två metoder för minnesallokering i Marshal klassen. (Marshal.AllocCoTaskMem är den andra.) Den här metoden exponerar funktionen Win32 LocalAlloc från Kernel32.dll.

När AllocHGlobal anrop LocalAllocskickas en LMEM_FIXED flagga som gör att det allokerade minnet låses på plats. Dessutom är det allokerade minnet inte nollfyllt.

Se även

Gäller för

AllocHGlobal(IntPtr)

Allokerar minne från ohanterat minne i processen med hjälp av pekaren till det angivna antalet byte.

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

Parametrar

cb
IntPtr

nativeint

Det antal byte som krävs i minnet.

Returer

IntPtr

nativeint

En pekare till det nyligen allokerade minnet. Det här minnet måste frigöras med hjälp av FreeHGlobal(IntPtr) metoden .

Attribut

Undantag

Det finns inte tillräckligt med minne för att uppfylla begäran.

Kommentarer

Important

Den här interna minnesallokeraren är ett äldre API som ska användas exklusivt när det anropas av specifika Win32-API:er på Windows-plattformen. När du riktar in dig på .NET 6 eller senare använder du klassen NativeMemory på alla plattformar för att allokera inbyggt minne. När du riktar in dig på .NET Framework använder du AllocCoTaskMem på alla plattformar för att allokera inbyggt minne.

AllocHGlobal är en av två metoder för minnesallokering i Marshal klassen. (Marshal.AllocCoTaskMem är den andra.) Den här metoden exponerar funktionen Win32 LocalAlloc från Kernel32.dll.

När AllocHGlobal anrop LocalAllocskickas en LMEM_FIXED flagga som gör att det allokerade minnet låses på plats. Dessutom är det allokerade minnet inte nollfyllt.

Exempel på kod finns i Marshal och AllocHGlobal.

Se även

Gäller för