Marshal.AllocHGlobal Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Asigna memoria de la memoria no administrada del proceso.
Sobrecargas
AllocHGlobal(Int32) |
Asigna memoria de la memoria no administrada del proceso mediante el número especificado de bytes. |
AllocHGlobal(IntPtr) |
Asigna memoria de la memoria no administrada del proceso mediante el puntero al número de bytes especificado. |
AllocHGlobal(Int32)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Asigna memoria de la memoria no administrada del proceso mediante 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
nativeint
Puntero a la memoria recién asignada. Esta memoria debe liberarse mediante el método FreeHGlobal(IntPtr).
- Atributos
Excepciones
No hay memoria suficiente para satisfacer la solicitud.
Ejemplos
En el ejemplo siguiente se muestra cómo llamar al método AllocHGlobal. Este ejemplo de código forma 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
Importante
Este asignador de memoria nativo es una API heredada que se debe usar exclusivamente cuando se llama a las API de Win32 específicas en la plataforma Windows. Cuando tenga como destino .NET 6 o posterior, use la clase NativeMemory en todas las plataformas para asignar memoria nativa. Cuando tenga como destino .NET 6 o versiones anteriores, use AllocCoTaskMem en todas las plataformas para asignar memoria nativa.
AllocHGlobal es uno de los dos métodos de asignación de memoria de la clase Marshal. (
Cuando AllocHGlobal llama a LocalAlloc
, pasa una marca de LMEM_FIXED
, lo que hace que la memoria asignada se bloquee en su lugar. Además, la memoria asignada no está llena de 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 mediante el puntero al número de bytes especificado.
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
nativeint
Puntero a la memoria recién asignada. Esta memoria debe liberarse mediante el método FreeHGlobal(IntPtr).
- Atributos
Excepciones
No hay memoria suficiente para satisfacer la solicitud.
Comentarios
Importante
Este asignador de memoria nativo es una API heredada que se debe usar exclusivamente cuando se llama a las API de Win32 específicas en la plataforma Windows. Cuando tenga como destino .NET 6 o posterior, use la clase NativeMemory en todas las plataformas para asignar memoria nativa. Cuando tenga como destino .NET 6 o versiones anteriores, use AllocCoTaskMem en todas las plataformas para asignar memoria nativa.
AllocHGlobal es uno de los dos métodos de asignación de memoria de la clase Marshal. (
Cuando AllocHGlobal llama a LocalAlloc
, pasa una marca de LMEM_FIXED
, lo que hace que la memoria asignada se bloquee en su lugar. Además, la memoria asignada no está llena de cero.
Para obtener código de ejemplo, vea Marshal y AllocHGlobal.