Marshal.AllocHGlobal Método

Definição

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)

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

IntPtr

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 Win32 LocalAlloc 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 está cheia de zero.

Confira também

Aplica-se a

AllocHGlobal(IntPtr)

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

IntPtr

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 Win32 LocalAlloc 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 está cheia de zero.

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

Confira também

Aplica-se a