Compartir a través de


Marshal.AllocHGlobal Método

Definición

Asigna memoria de la memoria no administrada del proceso.

Sobrecargas

AllocHGlobal(Int32)

Asigna memoria de la memoria no administrada del proceso utilizando el número especificado de bytes.

AllocHGlobal(IntPtr)

Asigna memoria de la memoria no administrada del proceso utilizando el puntero al número especificado de bytes.

AllocHGlobal(Int32)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Asigna memoria de la memoria no administrada del proceso utilizando el número especificado de bytes.

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

Parámetros

cb
Int32

Número necesario de bytes en memoria.

Devoluciones

IntPtr

nativeint

Puntero a la memoria recién asignada. Debe liberarse esta memoria con el método FreeHGlobal(IntPtr).

Atributos

Excepciones

No hay memoria suficiente para satisfacer la solicitud.

Ejemplos

En el ejemplo siguiente se muestra la forma de llamar al método AllocHGlobal. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase 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)

Comentarios

AllocHGlobal es uno de los dos métodos de asignación de memoria de la Marshal clase . (Marshal.AllocCoTaskMem es el otro). Este método expone la función LocalAlloc de Win32 de Kernel32.dll.

Cuando AllocHGlobal llama a LocalAlloc, pasa una LMEM_FIXED marca, lo que hace que la memoria asignada se bloquee en su lugar. Además, la memoria asignada no está llena en cero.

Consulte también

Se aplica a

AllocHGlobal(IntPtr)

Source:
Marshal.Unix.cs
Source:
Marshal.Unix.cs
Source:
Marshal.Unix.cs

Asigna memoria de la memoria no administrada del proceso utilizando el puntero al número especificado de bytes.

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

Parámetros

cb
IntPtr

nativeint

Número necesario de bytes en memoria.

Devoluciones

IntPtr

nativeint

Puntero a la memoria recién asignada. Debe liberarse esta memoria con el método FreeHGlobal(IntPtr).

Atributos

Excepciones

No hay memoria suficiente para satisfacer la solicitud.

Comentarios

AllocHGlobal es uno de los dos métodos de asignación de memoria de la Marshal clase . (Marshal.AllocCoTaskMem es el otro). Este método expone la función LocalAlloc de Win32 de Kernel32.dll.

Cuando AllocHGlobal llama a LocalAlloc, pasa una LMEM_FIXED marca, lo que hace que la memoria asignada se bloquee en su lugar. Además, la memoria asignada no está llena en cero.

Para obtener código de ejemplo, vea Marshal y AllocHGlobal.

Consulte también

Se aplica a