Marshal.AllocHGlobal Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przydziela pamięć z niezarządzanej pamięci procesu.
Przeciążenia
AllocHGlobal(Int32) |
Przydziela pamięć z niezarządzanej pamięci procesu przy użyciu określonej liczby bajtów. |
AllocHGlobal(IntPtr) |
Przydziela pamięć z niezarządzanej pamięci procesu przy użyciu wskaźnika do określonej liczby bajtów. |
AllocHGlobal(Int32)
- Źródło:
- Marshal.cs
- Źródło:
- Marshal.cs
- Źródło:
- Marshal.cs
Przydziela pamięć z niezarządzanej pamięci procesu przy użyciu określonej liczby bajtów.
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
Parametry
- cb
- Int32
Wymagana liczba bajtów w pamięci.
Zwraca
nativeint
Wskaźnik do nowo przydzielonej pamięci. Ta pamięć musi zostać zwolniona przy użyciu metody FreeHGlobal(IntPtr).
- Atrybuty
Wyjątki
Brak pamięci do spełnienia żądania.
Przykłady
W poniższym przykładzie pokazano wywołanie metody AllocHGlobal. Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy Marshal.
// 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)
Uwagi
Ważny
Ten macierzysty alokator pamięci jest starszym interfejsem API, który powinien być używany wyłącznie w przypadku wywołania przez określone interfejsy API Win32 na platformie Windows. W przypadku określania wartości docelowej platformy .NET 6 lub nowszej użyj klasy NativeMemory na wszystkich platformach, aby przydzielić pamięć natywną. W przypadku określania wartości docelowej platformy .NET 6 lub starszej użyj AllocCoTaskMem na wszystkich platformach, aby przydzielić pamięć natywną.
AllocHGlobal jest jedną z dwóch metod alokacji pamięci w klasie Marshal. (
Gdy AllocHGlobal wywołuje LocalAlloc
, przekazuje flagę LMEM_FIXED
, która powoduje zablokowanie przydzielonej pamięci. Ponadto przydzielona pamięć nie jest wypełniona zero.
Zobacz też
Dotyczy
AllocHGlobal(IntPtr)
- Źródło:
- Marshal.Unix.cs
- Źródło:
- Marshal.Unix.cs
- Źródło:
- Marshal.Unix.cs
Przydziela pamięć z niezarządzanej pamięci procesu przy użyciu wskaźnika do określonej liczby bajtów.
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
Parametry
- cb
-
IntPtr
nativeint
Wymagana liczba bajtów w pamięci.
Zwraca
nativeint
Wskaźnik do nowo przydzielonej pamięci. Ta pamięć musi zostać zwolniona przy użyciu metody FreeHGlobal(IntPtr).
- Atrybuty
Wyjątki
Brak pamięci do spełnienia żądania.
Uwagi
Ważny
Ten macierzysty alokator pamięci jest starszym interfejsem API, który powinien być używany wyłącznie w przypadku wywołania przez określone interfejsy API Win32 na platformie Windows. W przypadku określania wartości docelowej platformy .NET 6 lub nowszej użyj klasy NativeMemory na wszystkich platformach, aby przydzielić pamięć natywną. W przypadku określania wartości docelowej platformy .NET 6 lub starszej użyj AllocCoTaskMem na wszystkich platformach, aby przydzielić pamięć natywną.
AllocHGlobal jest jedną z dwóch metod alokacji pamięci w klasie Marshal. (
Gdy AllocHGlobal wywołuje LocalAlloc
, przekazuje flagę LMEM_FIXED
, która powoduje zablokowanie przydzielonej pamięci. Ponadto przydzielona pamięć nie jest wypełniona zero.
Zobacz na przykład kod Marshal i AllocHGlobal.