Udostępnij za pośrednictwem


Klasa CSharedFile

Klasa pochodna CMemFile, która obsługuje pliki pamięci udostępnionej.

Składnia

class CSharedFile : public CMemFile

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CSharedFile::CSharedFile CSharedFile Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CSharedFile::D etach Zamyka plik pamięci udostępnionej i zwraca uchwyt bloku pamięci.
CSharedFile::SetHandle Dołącza plik pamięci udostępnionej do bloku pamięci.

Uwagi

Pliki pamięci zachowują się jak pliki dysku. Różnica polega na tym, że plik pamięci jest przechowywany w pamięci RAM, a nie na dysku. Plik pamięci jest przydatny w przypadku szybkiego magazynu tymczasowego lub transferu nieprzetworzonych bajtów lub serializowanych obiektów między niezależnymi procesami.

Pliki pamięci udostępnionej różnią się od innych plików pamięci w tej pamięci, które są przydzielane za pomocą funkcji GlobalAlloc systemu Windows. Klasa CSharedFile przechowuje dane w globalnie przydzielonym bloku pamięci (utworzonym przy użyciu GlobalAlloc), a ten blok pamięci może być współużytkowany przy użyciu funkcji DDE, Schowka lub innych jednolitych operacji transferu danych OLE/COM, na przykład przy użyciu polecenia IDataObject.

GlobalAlloc Zwraca uchwyt HGLOBAL, a nie wskaźnik do pamięci, taki jak wskaźnik zwrócony przez malloc. Obsługa HGLOBAL jest wymagana w niektórych aplikacjach. Aby na przykład umieścić dane w Schowku, potrzebujesz uchwytu HGLOBAL.

CSharedFile nie używa plików mapowanych w pamięci, a dane nie mogą być bezpośrednio współużytkowane między procesami.

CSharedFile obiekty mogą automatycznie przydzielać własną pamięć. Możesz też dołączyć własny blok pamięci do obiektu, wywołując metodę CSharedFile CSharedFile::SetHandle. W obu przypadkach pamięć do automatycznego zwiększania pliku pamięci jest przydzielana w nGrowBytesprzyrostach o rozmiarze, jeśli nGrowBytes nie jest równa zero.

Aby uzyskać więcej informacji, zobacz artykuł Pliki w MFC i Obsługa plików w dokumentacji biblioteki czasu wykonywania.

Hierarchia dziedziczenia

Obiekt CObject

CFile

CMemFile

CSharedFile

Wymagania

Nagłówek: afxadv.h

CSharedFile::CSharedFile

CSharedFile Tworzy obiekt i przydziela dla niego pamięć.

CSharedFile(
    UINT nAllocFlags = GMEM_DDESHARE | GMEM_MOVEABLE,
    UINT nGrowBytes = 4096);

Parametry

nAllocFlags
Flagi wskazujące sposób przydzielania pamięci. Zobacz GlobalAlloc , aby uzyskać listę prawidłowych wartości flagi.

nGrowBytes
Alokacja pamięci zwiększa się w bajtach.

CSharedFile::D etach

Wywołaj tę funkcję, aby zamknąć plik pamięci i odłączyć go od bloku pamięci.

HGLOBAL Detach();

Wartość zwracana

Uchwyt bloku pamięci, który zawiera zawartość pliku pamięci.

Uwagi

Można go ponownie otworzyć, wywołując metodę SetHandle, używając dojścia zwróconego przez polecenie Detach.

CSharedFile::SetHandle

Wywołaj tę funkcję, aby dołączyć blok pamięci globalnej do CSharedFile obiektu.

void SetHandle(
    HGLOBAL hGlobalMemory,
    BOOL bAllowGrow = TRUE);

Parametry

hGlobalMemory
Dojście do pamięci globalnej, która ma być dołączona do elementu CSharedFile.

bAllowGrow
Określa, czy blok pamięci może rosnąć.

Uwagi

Jeśli wartość bAllowGrow jest niezerowa, rozmiar bloku pamięci jest zwiększany w razie potrzeby, na przykład w przypadku próby zapisania większej liczby bajtów do pliku niż rozmiar bloku pamięci.

Zobacz też

Klasa CMemFile
Wykres hierarchii
Klasa CMemFile