Marshal.AllocHGlobal Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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
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.