Marshal.AllocHGlobal Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выделяет память из неуправляемой памяти процесса.
Перегрузки
AllocHGlobal(Int32) |
Выделяет память из неуправляемой памяти процесса, используя заданное количество байтов. |
AllocHGlobal(IntPtr) |
Выделяет память из неуправляемой памяти процесса, используя указатель на заданное количество байтов. |
AllocHGlobal(Int32)
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
- Исходный код:
- Marshal.cs
Выделяет память из неуправляемой памяти процесса, используя заданное количество байтов.
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
Параметры
- cb
- Int32
Требуемое количество байтов памяти.
Возвращаемое значение
nativeint
Указатель на только что выделенную память. Эта память должна освобождаться при помощи метода FreeHGlobal(IntPtr).
- Атрибуты
Исключения
Недостаточно памяти для выполнения запроса.
Примеры
В следующем примере демонстрируется вызов метода AllocHGlobal. Этот пример входит в состав более крупного примера использования класса 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)
Комментарии
AllocHGlobal является одним из двух методов выделения памяти в Marshal классе . (Marshal.AllocCoTaskMem является другим.) Этот метод предоставляет функцию Win32 LocalAlloc из Kernel32.dll.
При AllocHGlobal вызове LocalAlloc
передается LMEM_FIXED
флаг, который приводит к блокировке выделенной памяти. Кроме того, выделенная память не заполнена с нуля.
См. также раздел
Применяется к
AllocHGlobal(IntPtr)
- Исходный код:
- Marshal.Unix.cs
- Исходный код:
- Marshal.Unix.cs
- Исходный код:
- Marshal.Unix.cs
Выделяет память из неуправляемой памяти процесса, используя указатель на заданное количество байтов.
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
Параметры
- cb
-
IntPtr
nativeint
Требуемое количество байтов памяти.
Возвращаемое значение
nativeint
Указатель на только что выделенную память. Эта память должна освобождаться при помощи метода FreeHGlobal(IntPtr).
- Атрибуты
Исключения
Недостаточно памяти для выполнения запроса.
Комментарии
AllocHGlobal является одним из двух методов выделения памяти в Marshal классе . (Marshal.AllocCoTaskMem является другим.) Этот метод предоставляет функцию Win32 LocalAlloc из Kernel32.dll.
При AllocHGlobal вызове LocalAlloc
передается LMEM_FIXED
флаг, который приводит к блокировке выделенной памяти. Кроме того, выделенная память не заполнена с нуля.
Пример кода см. в разделе Marshal и AllocHGlobal.