Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Bu sınıf, Win32 genel yığın işlevlerini kullanarak IAtlMemMgr uygular.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
class CGlobalHeap : public IAtlMemMgr
Üyeler
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| CGlobalHeap::Allocate | Bir bellek bloğu ayırmak için bu yöntemi çağırın. |
| CGlobalHeap::Free | Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunu boşaltmak için bu yöntemi çağırın. |
| CGlobalHeap::GetSize | Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunun ayrılmış boyutunu almak için bu yöntemi çağırın. |
| CGlobalHeap::Reallocate | Bu bellek yöneticisi tarafından ayrılan belleği yeniden dağıtmak için bu yöntemi çağır. |
Açıklamalar
CGlobalHeap Win32 genel yığın işlevlerini kullanarak bellek ayırma işlevlerini uygular.
Not
Genel yığın işlevleri diğer bellek yönetimi işlevlerinden daha yavaştır ve o kadar fazla özellik sağlamaz. Bu nedenle, yeni uygulamalar yığın işlevlerini kullanmalıdır. Bunlar CWin32Heap sınıfında kullanılabilir. Genel işlevler DDE ve pano işlevleri tarafından hala kullanılır.
Örnek
IAtlMemMgr örneğine bakın.
Devralma Hiyerarşisi
IAtlMemMgr
CGlobalHeap
Gereksinimler
Üst bilgi: atlmem.h
CGlobalHeap::Allocate
Bir bellek bloğu ayırmak için bu yöntemi çağırın.
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
Parametreler
nBayt
Yeni bellek bloğunda istenen bayt sayısı.
Dönüş Değeri
Yeni ayrılan bellek bloğunun başlangıcına bir işaretçi döndürür.
Açıklamalar
Bu yöntem tarafından ayrılan belleği boşaltmak için CGlobalHeap::Free veya CGlobalHeap::Reallocate öğesini çağırın.
GMEM_FIXED bayrak parametresiyle GlobalAlloc kullanılarak uygulanır.
CGlobalHeap::Free
Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunu boşaltmak için bu yöntemi çağırın.
virtual void Free(void* p) throw();
Parametreler
p
Bu bellek yöneticisi tarafından daha önce ayrılan belleğe işaretçi. NULL geçerli bir değerdir ve hiçbir şey yapmaz.
Açıklamalar
GlobalFree kullanılarak uygulanır.
CGlobalHeap::GetSize
Bu bellek yöneticisi tarafından ayrılan bir bellek bloğunun ayrılmış boyutunu almak için bu yöntemi çağırın.
virtual size_t GetSize(void* p) throw();
Parametreler
p
Bu bellek yöneticisi tarafından daha önce ayrılan belleğe işaretçi.
Dönüş Değeri
Ayrılan bellek bloğunun boyutunu bayt cinsinden döndürür.
Açıklamalar
GlobalSize kullanılarak uygulanır.
CGlobalHeap::Reallocate
Bu bellek yöneticisi tarafından ayrılan belleği yeniden dağıtmak için bu yöntemi çağır.
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
Parametreler
p
Bu bellek yöneticisi tarafından daha önce ayrılan belleğe işaretçi.
nBayt
Yeni bellek bloğunda istenen bayt sayısı.
Dönüş Değeri
Yeni ayrılan bellek bloğunun başlangıcına bir işaretçi döndürür.
Açıklamalar
Bu yöntem tarafından ayrılan belleği boşaltmak için CGlobalHeap::Free öğesini çağırın.
GlobalReAlloc kullanılarak uygulanır.
Ayrıca bkz.
Sınıfa Genel Bakış
CComHeap Sınıfı
CWin32Heap Sınıfı
CLocalHeap Sınıfı
CCRTHeap Sınıfı
IAtlMemMgr Sınıfı