Compartilhar via


Método Marshal.AllocHGlobal (Int32)

 

Dica

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Aloca memória de memória não gerenciada do processo usando o número de bytes especificado.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (em mscorlib.dll)

Sintaxe

[SecurityCriticalAttribute]
public static IntPtr AllocHGlobal(
    int cb
)
public:
[SecurityCriticalAttribute]
static IntPtr AllocHGlobal(
    int cb
)
[<SecurityCriticalAttribute>]
static member AllocHGlobal : 
        cb:int -> nativeint
<SecurityCriticalAttribute>
Public Shared Function AllocHGlobal (
    cb As Integer
) As IntPtr

Parâmetros

  • cb
    Type: System.Int32

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

Valor Retornado

Type: System.IntPtr

Um ponteiro para a memória recém-alocada. Essa memória deve ser liberada usando o método Marshal.FreeHGlobal.

Exceções

Exception Condition
OutOfMemoryException

Não há memória suficiente para atender à solicitação.

Comentários

AllocHGlobalé um dos dois métodos de alocação de memória no Marshal classe. (Marshal.AllocCoTaskMem é outro.) Esse método expõe o Win32 LocalAlloc função Kernel32.

Quando AllocHGlobal chamadas LocalAlloc, ele passa um LMEM_FIXED sinalizador, que faz com que a memória alocada ser bloqueada no local. Além disso, a memória alocada não é preenchidas com zeros.

Exemplos

O exemplo a seguir demonstra a chamar o AllocHGlobalmétodo. Este exemplo de código é 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.
Dim hglobal As IntPtr = 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);

Segurança

SecurityCriticalAttribute

requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Informações de Versão

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Windows Phone Silverlight
Disponível desde 8.0
Windows Phone
Disponível desde 8.1

Confira Também

AllocCoTaskMem
FreeHGlobal
AllocHGlobal Sobrecarga
Classe Marshal
Namespace System.Runtime.InteropServices

Retornar ao início