Marshal.AllocHGlobal Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aloca memória da memória não gerenciada do processo.
Sobrecargas
AllocHGlobal(Int32) |
Aloca memória de memória não gerenciada do processo usando o número de bytes especificado. |
AllocHGlobal(IntPtr) |
Aloca memória de memória não gerenciada do processo usando o ponteiro para o número de bytes especificado. |
AllocHGlobal(Int32)
- Origem:
- Marshal.cs
- Origem:
- Marshal.cs
- Origem:
- Marshal.cs
Aloca memória de memória não gerenciada do processo usando o número de bytes especificado.
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
O número necessário de bytes na memória.
Retornos
nativeint
Um ponteiro para a memória recém-alocada. Essa memória deve ser liberada usando o método FreeHGlobal(IntPtr).
- Atributos
Exceções
Não há memória suficiente para atender à solicitação.
Exemplos
O exemplo a seguir demonstra a chamada do AllocHGlobal método . Este exemplo de código faz parte de um exemplo maior fornecido para a 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)
Comentários
AllocHGlobal é um dos dois métodos de alocação de memória na Marshal classe . (Marshal.AllocCoTaskMem é o outro.) Esse método expõe a função LocalAlloc do Win32 de Kernel32.dll.
Quando AllocHGlobal chama LocalAlloc
, ele passa um LMEM_FIXED
sinalizador, o que faz com que a memória alocada seja bloqueada no local. Além disso, a memória alocada não é preenchida com zero.
Confira também
Aplica-se a
AllocHGlobal(IntPtr)
- Origem:
- Marshal.Unix.cs
- Origem:
- Marshal.Unix.cs
- Origem:
- Marshal.Unix.cs
Aloca memória de memória não gerenciada do processo usando o ponteiro para o 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
O número necessário de bytes na memória.
Retornos
nativeint
Um ponteiro para a memória recém-alocada. Essa memória deve ser liberada usando o método FreeHGlobal(IntPtr).
- Atributos
Exceções
Não há memória suficiente para atender à solicitação.
Comentários
AllocHGlobal é um dos dois métodos de alocação de memória na Marshal classe . (Marshal.AllocCoTaskMem é o outro.) Esse método expõe a função LocalAlloc do Win32 de Kernel32.dll.
Quando AllocHGlobal chama LocalAlloc
, ele passa um LMEM_FIXED
sinalizador, o que faz com que a memória alocada seja bloqueada no local. Além disso, a memória alocada não é preenchida com zero.
Por exemplo, código, consulte Marshal e AllocHGlobal.