Marshal.AllocHGlobal Metoda

Definice

Přidělí paměť z nespravované paměti procesu.

Přetížení

AllocHGlobal(Int32)

Přidělí paměť z nespravované paměti procesu pomocí zadaného počtu bajtů.

AllocHGlobal(IntPtr)

Přidělí paměť z nespravované paměti procesu pomocí ukazatele na zadaný počet bajtů.

AllocHGlobal(Int32)

Zdroj:
Marshal.cs
Zdroj:
Marshal.cs
Zdroj:
Marshal.cs

Přidělí paměť z nespravované paměti procesu pomocí zadaného počtu bajtů.

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

Požadovaný počet bajtů v paměti.

Návraty

IntPtr

nativeint

Ukazatel na nově přidělenou paměť. Tato paměť musí být vydána pomocí metody FreeHGlobal(IntPtr).

Atributy

Výjimky

Pro splnění požadavku není dostatek paměti.

Příklady

Následující příklad ukazuje volání AllocHGlobal metoda. Tento příklad kódu je součástí většího příkladu poskytnutého pro třídu 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)

Poznámky

Důležitý

Tento nativní alokátor paměti je starší verze rozhraní API, které by se mělo používat výhradně při volání pro konkrétní rozhraní API Win32 na platformě Windows. Při cílení na .NET 6 nebo novější použijte třídu NativeMemory na všech platformách k přidělení nativní paměti. Při cílení na .NET 6 nebo starší použijte AllocCoTaskMem na všech platformách k přidělení nativní paměti.

AllocHGlobal je jednou ze dvou metod přidělování paměti ve třídě Marshal. ( je druhá.) Tato metoda zpřístupňuje funkci LocalAlloc Win32 z Kernel32.dll.

Když AllocHGlobal volání LocalAlloc, předá LMEM_FIXED příznak, který způsobí, že přidělená paměť bude uzamčena. Přidělená paměť také není vyplněna nulou.

Viz také

Platí pro

AllocHGlobal(IntPtr)

Zdroj:
Marshal.Unix.cs
Zdroj:
Marshal.Unix.cs
Zdroj:
Marshal.Unix.cs

Přidělí paměť z nespravované paměti procesu pomocí ukazatele na zadaný počet bajtů.

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

Požadovaný počet bajtů v paměti.

Návraty

IntPtr

nativeint

Ukazatel na nově přidělenou paměť. Tato paměť musí být vydána pomocí metody FreeHGlobal(IntPtr).

Atributy

Výjimky

Pro splnění požadavku není dostatek paměti.

Poznámky

Důležitý

Tento nativní alokátor paměti je starší verze rozhraní API, které by se mělo používat výhradně při volání pro konkrétní rozhraní API Win32 na platformě Windows. Při cílení na .NET 6 nebo novější použijte třídu NativeMemory na všech platformách k přidělení nativní paměti. Při cílení na .NET 6 nebo starší použijte AllocCoTaskMem na všech platformách k přidělení nativní paměti.

AllocHGlobal je jednou ze dvou metod přidělování paměti ve třídě Marshal. ( je druhá.) Tato metoda zpřístupňuje funkci LocalAlloc Win32 z Kernel32.dll.

Když AllocHGlobal volání LocalAlloc, předá LMEM_FIXED příznak, který způsobí, že přidělená paměť bude uzamčena. Přidělená paměť také není vyplněna nulou.

Příklad kódu, viz Marshal a AllocHGlobal.

Viz také

Platí pro