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 는 클래스의 두 메모리 할당 메서드 중 하나입니다 Marshal .AllocHGlobal 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. 또한 할당 된 메모리는 0으로 채워지지 않습니다.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 는 클래스의 두 메모리 할당 메서드 중 하나입니다 Marshal .AllocHGlobal 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. 또한 할당 된 메모리는 0으로 채워지지 않습니다.Also, the allocated memory is not zero-filled.

예제 코드는 MarshalAllocHGlobal를 참조하십시오.For example code, see Marshal and AllocHGlobal.

추가 정보

적용 대상

제품 도입