Marshal.AllocHGlobal 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从进程的非托管内存中分配内存。
重载
AllocHGlobal(Int32) |
通过使用指定的字节数,从进程的非托管内存中分配内存。 |
AllocHGlobal(IntPtr) |
通过使用指向指定字节数的指针,从进程的非托管内存中分配内存。 |
AllocHGlobal(Int32)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- 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 (为 other.) 此方法从 Kernel32.dll 公开 Win32 LocalAlloc 函数。
调用 LocalAlloc
时AllocHGlobal,它会传递标志LMEM_FIXED
,这会导致分配的内存就地锁定。 此外,分配的内存不是零填充的。
另请参阅
适用于
AllocHGlobal(IntPtr)
- Source:
- Marshal.Unix.cs
- Source:
- Marshal.Unix.cs
- Source:
- 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 (为 other.) 此方法从 Kernel32.dll 公开 Win32 LocalAlloc 函数。
调用 LocalAlloc
时AllocHGlobal,它会传递标志LMEM_FIXED
,这会导致分配的内存就地锁定。 此外,分配的内存不是零填充的。
有关代码示例,请参阅 Marshal和 AllocHGlobal。