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 FreeHGlobal(IntPtr) menggunakan metode .

Atribut

Pengecualian

Memori tidak cukup untuk memenuhi permintaan.

Contoh

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

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

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

Ketika AllocHGlobal memanggil LocalAlloc, ia melewati LMEM_FIXED bendera, yang menyebabkan memori yang dialokasikan terkunci di tempatnya. Selain itu, memori yang dialokasikan tidak diisi 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 FreeHGlobal(IntPtr) menggunakan metode .

Atribut

Pengecualian

Memori tidak cukup untuk memenuhi permintaan.

Keterangan

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

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

Misalnya kode, lihat Marshal dan AllocHGlobal.

Lihat juga

Berlaku untuk