Marshal.AllocHGlobal メソッド

定義

プロセスのアンマネージ メモリからメモリを割り当てます。Allocates memory from the unmanaged memory of the process.

オーバーロード

AllocHGlobal(Int32)

指定したバイト数を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

AllocHGlobal(IntPtr)

指定したバイト数へのポインターを使用して、プロセスのアンマネージ メモリからメモリを割り当てます。Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

AllocHGlobal(Int32)

指定したバイト数を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。Allocates memory from the unmanaged memory of the process by using the specified number of bytes.

public:
 static IntPtr AllocHGlobal(int cb);
public static IntPtr AllocHGlobal (int cb);
[System.Security.SecurityCritical]
public static IntPtr AllocHGlobal (int cb);
static member AllocHGlobal : int -> nativeint
[<System.Security.SecurityCritical>]
static member AllocHGlobal : int -> nativeint
Public Shared Function AllocHGlobal (cb As Integer) As IntPtr

パラメーター

cb
Int32

メモリ内で必要なバイト数。The required number of bytes in memory.

戻り値

IntPtr

新しく割り当てられたメモリへのポインター。A pointer to the newly allocated memory. このメモリは、FreeHGlobal(IntPtr) メソッドを使用して解放する必要があります。This memory must be released using the FreeHGlobal(IntPtr) method.

属性

例外

メモリが不足しているため要求を満たせません。There is insufficient memory to satisfy the request.

次の例では、AllocHGlobal メソッドを呼び出す方法を示しています。The following example demonstrates calling the AllocHGlobal method. このコード例は、Marshal クラスのために提供されている大規模な例の一部です。This code example is part of a larger example provided for the Marshal class.

// 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 は、クラスの2つのメモリ割り当て方法のうちの1つです MarshalAllocHGlobal is one of two memory allocation methods in the Marshal class. ( Marshal.AllocCoTaskMem はその他です)。このメソッドは、Kernel32.dll から Win32 LocalAlloc 関数を公開します。(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

AllocHGlobalがを呼び出すと LocalAlloc 、フラグが渡さ LMEM_FIXED れます。これにより、割り当てられたメモリが所定の位置にロックされます。When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. また、割り当てられたメモリはゼロで塗りつぶされません。Also, the allocated memory is not zero-filled.

こちらもご覧ください

適用対象

AllocHGlobal(IntPtr)

指定したバイト数へのポインターを使用して、プロセスのアンマネージ メモリからメモリを割り当てます。Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.

public:
 static IntPtr AllocHGlobal(IntPtr cb);
public static IntPtr AllocHGlobal (IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr AllocHGlobal (IntPtr cb);
static member AllocHGlobal : nativeint -> nativeint
[<System.Security.SecurityCritical>]
static member AllocHGlobal : nativeint -> nativeint
Public Shared Function AllocHGlobal (cb As IntPtr) As IntPtr

パラメーター

cb
IntPtr

メモリ内で必要なバイト数。The required number of bytes in memory.

戻り値

IntPtr

新しく割り当てられたメモリへのポインター。A pointer to the newly allocated memory. このメモリは、FreeHGlobal(IntPtr) メソッドを使用して解放する必要があります。This memory must be released using the FreeHGlobal(IntPtr) method.

属性

例外

メモリが不足しているため要求を満たせません。There is insufficient memory to satisfy the request.

注釈

AllocHGlobal は、クラスの2つのメモリ割り当て方法のうちの1つです MarshalAllocHGlobal is one of two memory allocation methods in the Marshal class. ( Marshal.AllocCoTaskMem はその他です)。このメソッドは、Kernel32.dll から Win32 LocalAlloc 関数を公開します。(Marshal.AllocCoTaskMem is the other.) This method exposes the Win32 LocalAlloc function from Kernel32.dll.

AllocHGlobalがを呼び出すと LocalAlloc 、フラグが渡さ LMEM_FIXED れます。これにより、割り当てられたメモリが所定の位置にロックされます。When AllocHGlobal calls LocalAlloc, it passes a LMEM_FIXED flag, which causes the allocated memory to be locked in place. また、割り当てられたメモリはゼロで塗りつぶされません。Also, the allocated memory is not zero-filled.

コード例については、「」および「」を参照してください Marshal AllocHGlobalFor example code, see Marshal and AllocHGlobal.

こちらもご覧ください

適用対象