Marshal.AllocHGlobal Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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. (
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
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. (
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.