Bagikan melalui


Marshal.AllocHGlobal Metode

Definisi

Mengalokasikan memori dari memori proses yang tidak dikelola.

Overload

AllocHGlobal(Int32)

Mengalokasikan memori dari memori proses yang tidak dikelola dengan menggunakan jumlah byte yang ditentukan.

AllocHGlobal(IntPtr)

Mengalokasikan memori dari memori proses yang tidak dikelola dengan menggunakan penunjuk ke jumlah byte yang ditentukan.

AllocHGlobal(Int32)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.cs

Mengalokasikan memori dari memori proses yang tidak dikelola dengan menggunakan jumlah byte yang ditentukan.

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

Jumlah byte yang diperlukan dalam memori.

Mengembalikan

IntPtr

nativeint

Penunjuk ke memori yang baru dialokasikan. Memori ini harus dilepaskan menggunakan metode FreeHGlobal(IntPtr).

Atribut

Pengecualian

Memori tidak cukup untuk memenuhi permintaan.

Contoh

Contoh berikut menunjukkan panggilan metode AllocHGlobal. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk kelas Marshal.

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

Keterangan

Penting

Alokator memori asli ini adalah API warisan yang harus digunakan secara eksklusif ketika dipanggil oleh API Win32 tertentu pada platform Windows. Saat menargetkan .NET 6 atau yang lebih baru, gunakan kelas NativeMemory di semua platform untuk mengalokasikan memori asli. Saat menargetkan .NET 6 atau yang lebih lama, gunakan AllocCoTaskMem di semua platform untuk mengalokasikan memori asli.

AllocHGlobal adalah salah satu dari dua metode alokasi memori di kelas Marshal. ( adalah yang lain.) Metode ini mengekspos fungsi Win32 LocalAlloc dari Kernel32.dll.

Ketika AllocHGlobal memanggil LocalAlloc, itu melewati bendera LMEM_FIXED, yang menyebabkan memori yang dialokasikan terkunci di tempatnya. Selain itu, memori yang dialokasikan tidak terisi nol.

Lihat juga

Berlaku untuk

AllocHGlobal(IntPtr)

Sumber:
Marshal.Unix.cs
Sumber:
Marshal.Unix.cs
Sumber:
Marshal.Unix.cs

Mengalokasikan memori dari memori proses yang tidak dikelola dengan menggunakan penunjuk ke jumlah byte yang ditentukan.

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

Jumlah byte yang diperlukan dalam memori.

Mengembalikan

IntPtr

nativeint

Penunjuk ke memori yang baru dialokasikan. Memori ini harus dilepaskan menggunakan metode FreeHGlobal(IntPtr).

Atribut

Pengecualian

Memori tidak cukup untuk memenuhi permintaan.

Keterangan

Penting

Alokator memori asli ini adalah API warisan yang harus digunakan secara eksklusif ketika dipanggil oleh API Win32 tertentu pada platform Windows. Saat menargetkan .NET 6 atau yang lebih baru, gunakan kelas NativeMemory di semua platform untuk mengalokasikan memori asli. Saat menargetkan .NET 6 atau yang lebih lama, gunakan AllocCoTaskMem di semua platform untuk mengalokasikan memori asli.

AllocHGlobal adalah salah satu dari dua metode alokasi memori di kelas Marshal. ( adalah yang lain.) Metode ini mengekspos fungsi Win32 LocalAlloc dari Kernel32.dll.

Ketika AllocHGlobal memanggil LocalAlloc, itu melewati bendera LMEM_FIXED, yang menyebabkan memori yang dialokasikan terkunci di tempatnya. Selain itu, memori yang dialokasikan tidak terisi nol.

Misalnya kode, lihat Marshal dan AllocHGlobal.

Lihat juga

Berlaku untuk