次の方法で共有


CGlobalHeap クラス

このクラスは、Win32 グローバル ヒープ関数を使用して IAtlMemMgr を実装します。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

class CGlobalHeap : public IAtlMemMgr

メンバー

パブリック メソッド

名前 説明
CGlobalHeap::Allocate メモリ ブロックを割り当てるには、このメソッドを呼び出します。
CGlobalHeap::Free このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックを解放します。
CGlobalHeap::GetSize このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックのサイズを取得します。
CGlobalHeap::Reallocate このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリの再割り当てを行います。

解説

CGlobalHeap では、Win32 グローバル ヒープ関数を利用し、メモリ割り当て関数が実装されます。

Note

グローバル ヒープ関数は、他のメモリ管理機能よりも低速で、多くの機能を提供しません。 そのため、新しいアプリケーションではヒープ関数を使用する必要があります。 CWin32Heap クラスで使用可能です。 グローバル関数は、DDE とクリップボード関数によって引き続き使用されます。

IAtlMemMgr の例を参照してください。

継承階層

IAtlMemMgr

CGlobalHeap

要件

ヘッダー: atlmem.h

CGlobalHeap::Allocate

メモリ ブロックを割り当てるには、このメソッドを呼び出します。

virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();

パラメーター

nBytes
新しいメモリ ブロック内の要求されたバイト数。

戻り値

新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。

解説

このメソッドによって割り当てられたメモリを解放するには、CGlobalHeap::Free または CGlobalHeap::Reallocate を呼び出します。

フラグ パラメーターが GMEM_FIXED の GlobalAlloc を使用して実装されます。

CGlobalHeap::Free

このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックを解放します。

virtual void Free(void* p) throw();

パラメーター

P
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。 NULL は有効な値であり、何も行いません。

解説

GlobalFree を使用して実装されます。

CGlobalHeap::GetSize

このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリ ブロックのサイズを取得します。

virtual size_t GetSize(void* p) throw();

パラメーター

P
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。

戻り値

割り当てられたメモリのサイズ (バイト単位) が返されます。

解説

GlobalSize を使用して実装されます。

CGlobalHeap::Reallocate

このメソッドを呼び出し、このメモリ マネージャーによって割り当てられたメモリの再割り当てを行います。

virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();

パラメーター

P
このメモリ マネージャーによって以前に割り当てられたメモリへのポインター。

nBytes
新しいメモリ ブロック内の要求されたバイト数。

戻り値

新しく割り当てられたメモリ ブロックの先頭へのポインターを返します。

解説

CGlobalHeap::Free を呼び出し、このメソッドによって割り当てられたメモリを解放します。

GlobalReAlloc を使用して実装されます。

関連項目

クラスの概要
CComHeap クラス
CWin32Heap クラス
CLocalHeap クラス
CCRTHeap クラス
IAtlMemMgr クラス