Freigeben über


Marshal.AllocHGlobal Methode

Definition

Belegt Speicher aus dem nicht verwalteten Speicher des Prozesses.

Überlädt

AllocHGlobal(Int32)

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mit der angegebenen Anzahl von Bytes.

AllocHGlobal(IntPtr)

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mithilfe des Zeigers auf die angegebene Anzahl von Bytes.

AllocHGlobal(Int32)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
Quelle:
Marshal.cs

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mit der angegebenen Anzahl von 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

Parameter

cb
Int32

Die erforderliche Anzahl der Bytes im Speicher.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf den neu reservierten Speicher. Dieser Speicher muss unter Verwendung der FreeHGlobal(IntPtr)-Methode freigegeben werden.

Attribute

Ausnahmen

Es ist nicht genügend Arbeitsspeicher zum Erfüllen der Anforderung vorhanden.

Beispiele

Im folgenden Beispiel wird das Aufrufen der AllocHGlobal-Methode veranschaulicht. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die Marshal-Klasse bereitgestellt wird.

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

Hinweise

AllocHGlobal ist eine von zwei Speicherzuordnungsmethoden in der Marshal -Klasse. (Marshal.AllocCoTaskMem ist die andere.) Diese Methode macht die Win32 LocalAlloc-Funktion von Kernel32.dll verfügbar.

Beim AllocHGlobal Aufrufen LocalAllocwird ein LMEM_FIXED Flag übergeben, das dazu führt, dass der zugewiesene Arbeitsspeicher gesperrt wird. Außerdem ist der zugewiesene Arbeitsspeicher nicht mit 0 0 gefüllt.

Weitere Informationen

Gilt für:

AllocHGlobal(IntPtr)

Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs
Quelle:
Marshal.Unix.cs

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mithilfe des Zeigers auf die angegebene Anzahl von 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

Parameter

cb
IntPtr

nativeint

Die erforderliche Anzahl der Bytes im Speicher.

Gibt zurück

IntPtr

nativeint

Ein Zeiger auf den neu reservierten Speicher. Dieser Speicher muss unter Verwendung der FreeHGlobal(IntPtr)-Methode freigegeben werden.

Attribute

Ausnahmen

Es ist nicht genügend Arbeitsspeicher zum Erfüllen der Anforderung vorhanden.

Hinweise

AllocHGlobal ist eine von zwei Speicherzuordnungsmethoden in der Marshal -Klasse. (Marshal.AllocCoTaskMem ist die andere.) Diese Methode macht die Win32 LocalAlloc-Funktion von Kernel32.dll verfügbar.

Beim AllocHGlobal Aufrufen LocalAllocwird ein LMEM_FIXED Flag übergeben, das dazu führt, dass der zugewiesene Arbeitsspeicher gesperrt wird. Außerdem ist der zugewiesene Arbeitsspeicher nicht mit 0 0 gefüllt.

Beispielcode finden Sie unter Marshal und AllocHGlobal.

Weitere Informationen

Gilt für: