Udostępnij za pośrednictwem


Marshal.AllocHGlobal Metoda

Definicja

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

IntPtr

nativeint

Wskaźnik do nowo przydzielonej pamięci. Ta pamięć musi zostać zwolniona przy użyciu FreeHGlobal(IntPtr) metody .

Atrybuty

Wyjątki

Za mało pamięci do spełnienia żądania.

Przykłady

W poniższym przykładzie pokazano wywołanie AllocHGlobal metody . Ten przykład kodu jest częścią większego przykładu udostępnionego Marshal dla klasy .

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

AllocHGlobal jest jedną z dwóch metod alokacji pamięci w Marshal klasie . (Marshal.AllocCoTaskMem to druga). Ta metoda uwidacznia funkcję Win32 LocalAlloc z Kernel32.dll.

Gdy AllocHGlobal wywołuje LocalAllocmetodę , przekazuje flagę LMEM_FIXED , co 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

IntPtr

nativeint

Wskaźnik do nowo przydzielonej pamięci. Ta pamięć musi zostać zwolniona przy użyciu FreeHGlobal(IntPtr) metody .

Atrybuty

Wyjątki

Za mało pamięci do spełnienia żądania.

Uwagi

AllocHGlobal jest jedną z dwóch metod alokacji pamięci w Marshal klasie . (Marshal.AllocCoTaskMem to druga). Ta metoda uwidacznia funkcję Win32 LocalAlloc z Kernel32.dll.

Gdy AllocHGlobal wywołuje LocalAllocmetodę , przekazuje flagę LMEM_FIXED , co powoduje zablokowanie przydzielonej pamięci. Ponadto przydzielona pamięć nie jest wypełniona zero.

Na przykład kod, zobacz Marshal i AllocHGlobal.

Zobacz też

Dotyczy