Marshal.AllocHGlobal Yöntem

Tanım

İşlemin yönetilmeyen belleğinden bellek ayırır.

Aşırı Yüklemeler

AllocHGlobal(Int32)

Belirtilen bayt sayısını kullanarak işlemin yönetilmeyen belleğinden bellek ayırır.

AllocHGlobal(IntPtr)

belirtilen bayt sayısına işaretçisini kullanarak işlemin yönetilmeyen belleğinden bellek ayırır.

AllocHGlobal(Int32)

Belirtilen bayt sayısını kullanarak işlemin yönetilmeyen belleğinden bellek ayırır.

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

Parametreler

cb
Int32

Bellekte gerekli bayt sayısı.

Döndürülenler

IntPtr

nativeint

Yeni ayrılan belleğin işaretçisi. Bu bellek yöntemi kullanılarak FreeHGlobal(IntPtr) serbest bırakılmalıdır.

Öznitelikler

Özel durumlar

İsteği karşılamak için yeterli bellek yok.

Örnekler

Aşağıdaki örnekte yönteminin çağrılması gösterilmektedir AllocHGlobal . Bu kod örneği, sınıfı için Marshal sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

AllocHGlobal sınıfındaki iki bellek ayırma yönteminden Marshal biridir. (Marshal.AllocCoTaskMem diğeridir.) Bu yöntem, Kernel32.dll'dan Win32 LocalAlloc işlevini kullanıma sunar.

çağrısı LocalAllocyapıldığındaAllocHGlobal, ayrılan belleğin yerinde kilitlenmesine neden olan bir LMEM_FIXED bayrak geçirir. Ayrıca, ayrılan bellek sıfır dolu değil.

Ayrıca bkz.

Şunlara uygulanır

AllocHGlobal(IntPtr)

belirtilen bayt sayısına işaretçisini kullanarak işlemin yönetilmeyen belleğinden bellek ayırır.

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

Parametreler

cb
IntPtr

nativeint

Bellekte gerekli bayt sayısı.

Döndürülenler

IntPtr

nativeint

Yeni ayrılan belleğin işaretçisi. Bu bellek yöntemi kullanılarak FreeHGlobal(IntPtr) serbest bırakılmalıdır.

Öznitelikler

Özel durumlar

İsteği karşılamak için yeterli bellek yok.

Açıklamalar

AllocHGlobal sınıfındaki iki bellek ayırma yönteminden Marshal biridir. (Marshal.AllocCoTaskMem diğeridir.) Bu yöntem, Kernel32.dll'dan Win32 LocalAlloc işlevini kullanıma sunar.

çağrısı LocalAllocyapıldığındaAllocHGlobal, ayrılan belleğin yerinde kilitlenmesine neden olan bir LMEM_FIXED bayrak geçirir. Ayrıca, ayrılan bellek sıfır dolu değil.

Örneğin kod, bkz Marshal . ve AllocHGlobal.

Ayrıca bkz.

Şunlara uygulanır