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.
Paylaşılan bellek dosyalarını destekleyen CMemFile türetilmiş sınıfı.
Sözdizimi
class CSharedFile : public CMemFile
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| CSharedFile::CSharedFile | Bir CSharedFile nesne oluşturur. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| CSharedFile::D etach | Paylaşılan bellek dosyasını kapatır ve bellek bloğunun tutamacını döndürür. |
| CSharedFile::SetHandle | Paylaşılan bellek dosyasını bir bellek bloğuna ekler. |
Açıklamalar
Bellek dosyaları disk dosyaları gibi davranır. Aradaki fark, bellek dosyasının disk yerine RAM'de depolanmasıdır. Bellek dosyası, hızlı geçici depolama için veya bağımsız işlemler arasında ham baytları veya serileştirilmiş nesneleri aktarmak için kullanışlıdır.
Paylaşılan bellek dosyaları, GlobalAlloc Windows işleviyle ayrılan bellekteki diğer bellek dosyalarından farklıdır. CSharedFile sınıfı verileri genel olarak ayrılmış bir bellek bloğunda (kullanılarak GlobalAllocoluşturulur) depolar ve bu bellek bloğu DDE, Pano veya diğer OLE/COM tekdüzen veri aktarımı işlemleri kullanılarak (örneğin kullanılarakIDataObject) paylaşılabilir.
GlobalAlloc, malloc tarafından döndürülen işaretçi gibi belleğe yönelik bir işaretçi yerine bir HGLOBAL tanıtıcısı döndürür. HGLOBAL tutamacı belirli uygulamalarda gereklidir. Örneğin, panoya veri koymak için bir HGLOBAL tutamacı gerekir.
CSharedFile bellekle eşlenen dosyaları kullanmaz ve veriler işlemler arasında doğrudan paylaşılamaz.
CSharedFile nesneleri kendi belleklerini otomatik olarak ayırabilir. Veya CSharedFile::SetHandle çağrısı yaparak nesneye CSharedFile kendi bellek bloğunuzu ekleyebilirsiniz. Her iki durumda da, bellek dosyasının otomatik olarak büyütüldüğünü belirten bellek, sıfır değilse nGrowBytes boyutlu artışlarla ayrılırnGrowBytes.
Daha fazla bilgi için Çalışma Zamanı Kitaplığı Başvurusu'nda MFC'deki Dosyalar ve Dosya İşleme makalesine bakın.
Devralma Hiyerarşisi
CSharedFile
Gereksinimler
Üst bilgi: afxadv.h
CSharedFile::CSharedFile
Bir CSharedFile nesne oluşturur ve bu nesne için bellek ayırır.
CSharedFile(
UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE,
UINT nGrowBytes = 4096);
Parametreler
nAllocFlags
Belleğin nasıl ayrıldığını gösteren bayraklar. Geçerli bayrak değerlerinin listesi için bkz . GlobalAlloc .
nGrowBytes
Bellek ayırma bayt cinsinden artar.
CSharedFile::D etach
Bellek dosyasını kapatmak ve bellek bloğundan ayırmak için bu işlevi çağırın.
HGLOBAL Detach();
Dönüş Değeri
Bellek dosyasının içeriğini içeren bellek bloğunun tanıtıcısı.
Açıklamalar
Ayır tarafından döndürülen tanıtıcıyı kullanarak SetHandle'ı çağırarak yeniden açabilirsiniz.
CSharedFile::SetHandle
Nesneye genel bellek bloğu eklemek için bu işlevi çağırın CSharedFile .
void SetHandle(
HGLOBAL hGlobalMemory,
BOOL bAllowGrow = TRUE);
Parametreler
hGlobalMemory
öğesine eklenecek genel belleğe ilişkin tanıtıcı CSharedFile.
bAllowGrow
Bellek bloğunun büyümesine izin verilip verilmeyeceğini belirtir.
Açıklamalar
bAllowGrow sıfır değilse, örneğin, dosyaya bellek bloğunun boyutundan daha fazla bayt yazmaya çalışırsanız, bellek bloğunun boyutu gerektiği gibi artar.