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 tramite il numero specificato di byte.

AllocHGlobal(IntPtr)

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

AllocHGlobal(Int32)

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

Alloca memoria dalla memoria non gestita del processo tramite 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 necessari nella memoria.

Restituisce

IntPtr

nativeint

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

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.

Esempio

Nel codice riportato di seguito viene illustrata la chiamata al metodo AllocHGlobal. Questo esempio di codice fa parte di un esempio più grande fornito per la Marshal classe.

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

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

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

Vedi anche

Si applica a

AllocHGlobal(IntPtr)

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

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

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 necessari nella memoria.

Restituisce

IntPtr

nativeint

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

Attributi

Eccezioni

Memoria insufficiente per soddisfare la richiesta.

Commenti

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

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

Per vedere un codice di esempio, vedere Marshal e AllocHGlobal.

Vedi anche

Si applica a