Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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.