Marshal.AllocHGlobal Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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
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.