Marshal.AllocHGlobal Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Przydziela pamięć z niezarządzanej pamięci procesu.
Przeciążenia
| Nazwa | Opis |
|---|---|
| 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
- Ź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 także
Dotyczy
AllocHGlobal(IntPtr)
- Źródło:
- Marshal.Unix.cs
- Źródło:
- Marshal.Unix.cs
- Ź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.