Marshal.AllocHGlobal-Methode: (Int32)
Veröffentlicht: Oktober 2016
Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mit der angegebenen Anzahl von Bytes.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Syntax
[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
Parameter
cb
Type: System.Int32Die erforderliche Anzahl der Bytes im Speicher.
Rückgabewert
Type: System.IntPtr
Ein Zeiger auf den neu reservierten Speicher. Dieser Speicher muss unter Verwendung der Marshal.FreeHGlobal-Methode freigegeben werden.
Ausnahmen
Exception | Condition |
---|---|
OutOfMemoryException | Es ist nicht genügend Arbeitsspeicher zum Erfüllen der Anforderung vorhanden. |
Hinweise
AllocHGlobal ist eine der beiden Methoden der Speicher-Zuordnung in der Marshal Klasse. (Marshal.AllocCoTaskMem die andere ist.) Diese Methode macht die Win32 LocalAlloc -Funktion von Kernel32.dll.
Wenn AllocHGlobal Aufrufe LocalAlloc, übergibt ein LMEM_FIXED -Flag, das bewirkt, dass den reservierten Arbeitsspeicher gesperrt. Darüber hinaus ist der belegten Speicher nicht 0 (null)-ausgefüllt.
Beispiele
Das folgende Beispiel veranschaulicht den Aufruf der AllocHGlobalMethode. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die Marshal Klasse.
// 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);
Sicherheit
requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Versionsinformationen
Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Siehe auch
AllocCoTaskMem
FreeHGlobal
AllocHGlobal Überladen
Marshal-Klasse
System.Runtime.InteropServices-Namespace
Zurück zum Anfang