Marshal.AllocHGlobal Méthode

Définition

Alloue de la mémoire non managée du processus.

Surcharges

AllocHGlobal(Int32)

Alloue de la mémoire non managée du processus à l’aide du nombre spécifié d’octets.

AllocHGlobal(IntPtr)

Alloue de la mémoire non managée du processus en utilisant le pointeur vers le nombre spécifié d’octets.

AllocHGlobal(Int32)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Alloue de la mémoire non managée du processus à l’aide du nombre spécifié d’octets.

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

Paramètres

cb
Int32

Nombre requis d’octets en mémoire.

Retours

IntPtr

nativeint

Pointeur vers la mémoire nouvellement allouée. Cette mémoire doit être libérée à l’aide de la méthode FreeHGlobal(IntPtr).

Attributs

Exceptions

La mémoire est insuffisante pour répondre à la demande.

Exemples

L’exemple suivant illustre l’appel de la méthode AllocHGlobal. Cet exemple de code fait partie d’un exemple plus large fourni pour la classe Marshal.

// 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)

Remarques

Important

Cet allocateur de mémoire native est une API héritée qui doit être utilisée exclusivement lorsqu’elle est appelée par des API Win32 spécifiques sur la plateforme Windows. Lorsque vous ciblez .NET 6 ou version ultérieure, utilisez la classe NativeMemory sur toutes les plateformes pour allouer de la mémoire native. Lorsque vous ciblez .NET 6 ou une version antérieure, utilisez AllocCoTaskMem sur toutes les plateformes pour allouer de la mémoire native.

AllocHGlobal est l’une des deux méthodes d’allocation de mémoire dans la classe Marshal. ( est l’autre.) Cette méthode expose la fonction de LocalAlloc win32 de Kernel32.dll.

Lorsque AllocHGlobal appelle LocalAlloc, il transmet un indicateur de LMEM_FIXED, ce qui entraîne le verrouillage de la mémoire allouée. En outre, la mémoire allouée n’est pas remplie à zéro.

Voir aussi

S’applique à

AllocHGlobal(IntPtr)

Source:
Marshal.Unix.cs
Source:
Marshal.Unix.cs
Source:
Marshal.Unix.cs

Alloue de la mémoire non managée du processus en utilisant le pointeur vers le nombre spécifié d’octets.

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

Paramètres

cb
IntPtr

nativeint

Nombre requis d’octets en mémoire.

Retours

IntPtr

nativeint

Pointeur vers la mémoire nouvellement allouée. Cette mémoire doit être libérée à l’aide de la méthode FreeHGlobal(IntPtr).

Attributs

Exceptions

La mémoire est insuffisante pour répondre à la demande.

Remarques

Important

Cet allocateur de mémoire native est une API héritée qui doit être utilisée exclusivement lorsqu’elle est appelée par des API Win32 spécifiques sur la plateforme Windows. Lorsque vous ciblez .NET 6 ou version ultérieure, utilisez la classe NativeMemory sur toutes les plateformes pour allouer de la mémoire native. Lorsque vous ciblez .NET 6 ou une version antérieure, utilisez AllocCoTaskMem sur toutes les plateformes pour allouer de la mémoire native.

AllocHGlobal est l’une des deux méthodes d’allocation de mémoire dans la classe Marshal. ( est l’autre.) Cette méthode expose la fonction de LocalAlloc win32 de Kernel32.dll.

Lorsque AllocHGlobal appelle LocalAlloc, il transmet un indicateur de LMEM_FIXED, ce qui entraîne le verrouillage de la mémoire allouée. En outre, la mémoire allouée n’est pas remplie à zéro.

Pour obtenir un exemple de code, consultez Marshal et AllocHGlobal.

Voir aussi

S’applique à