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 nGrowBytes
przyrostach 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
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.