Condividi tramite


Marshal.AllocHGlobal Metodo

Definizione

Alloca memoria dalla memoria non gestita del processo.

Overload

AllocHGlobal(Int32)

Alloca memoria dalla memoria non gestita del processo utilizzando il numero specificato di byte.

AllocHGlobal(IntPtr)

Alloca la memoria dalla memoria non gestita del processo usando il puntatore al numero di byte specificato.

AllocHGlobal(Int32)

Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs

Alloca memoria dalla memoria non gestita del processo utilizzando il numero specificato di byte.

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

Parametri

cb
Int32

Numero di byte richiesto in memoria.

Restituisce

IntPtr

nativeint

Puntatore alla memoria appena allocata. Questa memoria deve essere rilasciata usando il metodo FreeHGlobal(IntPtr).

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.

Esempio

Nell'esempio seguente viene illustrata la chiamata al metodo AllocHGlobal. Questo esempio di codice fa parte di un esempio più ampio fornito per la classe 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)

Commenti

Importante

Questo allocatore di memoria nativa è un'API legacy che deve essere usata esclusivamente quando viene chiamato per da API Win32 specifiche nella piattaforma Windows. Quando la destinazione è .NET 6 o versione successiva, usare la classe NativeMemory in tutte le piattaforme per allocare memoria nativa. Quando la destinazione è .NET 6 o versioni precedenti, usare AllocCoTaskMem in tutte le piattaforme per allocare memoria nativa.

AllocHGlobal è uno dei due metodi di allocazione di memoria nella classe Marshal. ( è l'altro. Questo metodo espone la funzione LocalAlloc Win32 da Kernel32.dll.

Quando AllocHGlobal chiama LocalAlloc, passa un flag di LMEM_FIXED, che causa il blocco della memoria allocata. Inoltre, la memoria allocata non viene riempita senza riempimento.

Vedi anche

Si applica a

AllocHGlobal(IntPtr)

Origine:
Marshal.Unix.cs
Origine:
Marshal.Unix.cs
Origine:
Marshal.Unix.cs

Alloca la memoria dalla memoria non gestita del processo usando il puntatore al numero di byte specificato.

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

Parametri

cb
IntPtr

nativeint

Numero di byte richiesto in memoria.

Restituisce

IntPtr

nativeint

Puntatore alla memoria appena allocata. Questa memoria deve essere rilasciata usando il metodo FreeHGlobal(IntPtr).

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.

Commenti

Importante

Questo allocatore di memoria nativa è un'API legacy che deve essere usata esclusivamente quando viene chiamato per da API Win32 specifiche nella piattaforma Windows. Quando la destinazione è .NET 6 o versione successiva, usare la classe NativeMemory in tutte le piattaforme per allocare memoria nativa. Quando la destinazione è .NET 6 o versioni precedenti, usare AllocCoTaskMem in tutte le piattaforme per allocare memoria nativa.

AllocHGlobal è uno dei due metodi di allocazione di memoria nella classe Marshal. ( è l'altro. Questo metodo espone la funzione LocalAlloc Win32 da Kernel32.dll.

Quando AllocHGlobal chiama LocalAlloc, passa un flag di LMEM_FIXED, che causa il blocco della memoria allocata. Inoltre, la memoria allocata non viene riempita senza riempimento.

Per un esempio di codice, vedere Marshal e AllocHGlobal.

Vedi anche

Si applica a