Marshal.AllocHGlobal Método

Definição

Aloca memória da memória não gerida do processo.

Sobrecargas

Name Description
AllocHGlobal(Int32)

Aloca memória a partir da memória não gerida do processo usando o número especificado de bytes.

AllocHGlobal(IntPtr)

Aloca memória da memória não gerida do processo usando o ponteiro para o número especificado de bytes.

AllocHGlobal(Int32)

Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs
Origem:
Marshal.cs

Aloca memória a partir da memória não gerida do processo usando o 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

O número necessário de bytes na memória.

Devoluções

IntPtr

nativeint

Um apontador para a memória recém-atribuída. Esta memória deve ser libertada usando o FreeHGlobal(IntPtr) método.

Atributos

Exceções

Não há memória suficiente para satisfazer o pedido.

Exemplos

O exemplo seguinte demonstra chamar o 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)

Observações

Importante

Este alocador de memória nativo é uma API legada que deve ser usada exclusivamente quando solicitada por APIs Win32 específicas na plataforma Windows. Ao direcionar .NET 6 ou posteriores, use a classe NativeMemory em todas as plataformas para alocar memória nativa. Ao direcionar .NET Framework, use AllocCoTaskMem em todas as plataformas para alocar memória nativa.

AllocHGlobal é um dos dois métodos de alocação de memória da Marshal classe. (Marshal.AllocCoTaskMem é a outra.) Este método expõe a função Win32 LocalAlloc de Kernel32.dll.

Ao AllocHGlobal chamar LocalAlloc, passa uma LMEM_FIXED flag, que faz com que a memória alocada fique bloqueada no lugar. Além disso, a memória alocada não está preenchida a zero.

Ver também

Aplica-se a

AllocHGlobal(IntPtr)

Origem:
Marshal.Unix.cs
Origem:
Marshal.Unix.cs
Origem:
Marshal.Unix.cs
Origem:
Marshal.Unix.cs
Origem:
Marshal.Unix.cs

Aloca memória da memória não gerida do processo usando o ponteiro para o 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

O número necessário de bytes na memória.

Devoluções

IntPtr

nativeint

Um apontador para a memória recém-atribuída. Esta memória deve ser libertada usando o FreeHGlobal(IntPtr) método.

Atributos

Exceções

Não há memória suficiente para satisfazer o pedido.

Observações

Importante

Este alocador de memória nativo é uma API legada que deve ser usada exclusivamente quando solicitada por APIs Win32 específicas na plataforma Windows. Ao direcionar .NET 6 ou posteriores, use a classe NativeMemory em todas as plataformas para alocar memória nativa. Ao direcionar .NET Framework, use AllocCoTaskMem em todas as plataformas para alocar memória nativa.

AllocHGlobal é um dos dois métodos de alocação de memória da Marshal classe. (Marshal.AllocCoTaskMem é a outra.) Este método expõe a função Win32 LocalAlloc de Kernel32.dll.

Ao AllocHGlobal chamar LocalAlloc, passa uma LMEM_FIXED flag, que faz com que a memória alocada fique bloqueada no lugar. Além disso, a memória alocada não está preenchida a zero.

Por exemplo, código, veja Marshal e AllocHGlobal.

Ver também

Aplica-se a