CSharedFile Sınıfı
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 GlobalAlloc
oluş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.