Marshal.AllocHGlobal Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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. (
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
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. (
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.