Aracılığıyla paylaş


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 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

CObject

CFile

CMemFile

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.

Ayrıca bkz.

CMemFile Sınıfı
Hiyerarşi Grafiği
CMemFile Sınıfı