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ına 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 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 Win32 LocalAlloc işlevini kullanıma sunar.
çağrısı LocalAlloc
yapı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)
- Kaynak:
- Marshal.Unix.cs
- Kaynak:
- Marshal.Unix.cs
- Kaynak:
- Marshal.Unix.cs
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
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 Win32 LocalAlloc işlevini kullanıma sunar.
çağrısı LocalAlloc
yapı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.