Marshal.AllocHGlobal Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İş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ı işaretçisini kullanarak işlemin yönetilmeyen belleğinden bellek ayırır. |
AllocHGlobal(Int32)
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
- Kaynak:
- Marshal.cs
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
nativeint
Yeni ayrılan belleğin işaretçisi. Bu bellek FreeHGlobal(IntPtr) yöntemi kullanılarak serbest bırakılmalıdır.
- Öznitelikler
Özel durumlar
İsteği karşılamak için yeterli bellek yok.
Örnekler
Aşağıdaki örnekte AllocHGlobal yönteminin çağrılması gösterilmektedir. Bu kod örneği, Marshal sınıfı için 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
Önemli
Bu yerel bellek ayırıcısı, Yalnızca Windows platformundaki belirli Win32 API'leri tarafından çağrıldığında kullanılması gereken eski bir API'dir. .NET 6 veya üzerini hedeflerken yerel bellek ayırmak için tüm platformlardaki NativeMemory sınıfını kullanın. .NET 6 veya önceki sürümleri hedeflerken yerel bellek ayırmak için tüm platformlarda AllocCoTaskMem kullanın.
AllocHGlobal, Marshal sınıfındaki iki bellek ayırma yönteminden biridir. (Marshal.AllocCoTaskMem diğeridir.) Bu yöntem, Kernel32.dll'den Win32 LocalAlloc işlevini kullanıma sunar.
AllocHGlobal
LocalAlloc
çağırdığında, ayrılan belleğin yerinde kilitlenmesine neden olan bir LMEM_FIXED
bayrağı geçirir. Ayrıca, ayrılan bellek sıfır dolu değil.
Ayrıca bkz.
Şunlara uygulanır
AllocHGlobal(IntPtr)
- Kaynak:
- Marshal.Unix.cs
- Kaynak:
- Marshal.Unix.cs
- Kaynak:
- Marshal.Unix.cs
belirtilen bayt sayısı 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
nativeint
Yeni ayrılan belleğin işaretçisi. Bu bellek FreeHGlobal(IntPtr) yöntemi kullanılarak serbest bırakılmalıdır.
- Öznitelikler
Özel durumlar
İsteği karşılamak için yeterli bellek yok.
Açıklamalar
Önemli
Bu yerel bellek ayırıcısı, Yalnızca Windows platformundaki belirli Win32 API'leri tarafından çağrıldığında kullanılması gereken eski bir API'dir. .NET 6 veya üzerini hedeflerken yerel bellek ayırmak için tüm platformlardaki NativeMemory sınıfını kullanın. .NET 6 veya önceki sürümleri hedeflerken yerel bellek ayırmak için tüm platformlarda AllocCoTaskMem kullanın.
AllocHGlobal, Marshal sınıfındaki iki bellek ayırma yönteminden biridir. (Marshal.AllocCoTaskMem diğeridir.) Bu yöntem, Kernel32.dll'den Win32 LocalAlloc işlevini kullanıma sunar.
AllocHGlobal
LocalAlloc
çağırdığında, ayrılan belleğin yerinde kilitlenmesine neden olan bir LMEM_FIXED
bayrağı geçirir. Ayrıca, ayrılan bellek sıfır dolu değil.
Örneğin kod, bkz. Marshal ve AllocHGlobal.