Udostępnij za pośrednictwem


IAtlStringMgr, klasa

Ta klasa reprezentuje interfejs CStringT menedżera pamięci.

Składnia

__interface IAtlStringMgr

Elementy członkowskie

Metody

Nazwa/nazwisko opis
Przydzielić Wywołaj tę metodę, aby przydzielić nową strukturę danych ciągów.
Klonowanie Wywołaj tę metodę, aby zwrócić wskaźnik do nowego menedżera ciągów do użycia z innym wystąpieniem CSimpleStringTklasy .
Bezpłatna Wywołaj tę metodę, aby zwolnić strukturę danych ciągu.
GetNilString Zwraca wskaźnik do obiektu używanego CStringData przez puste obiekty ciągów.
Przydziel przydział rzeczywisty Wywołaj tę metodę, aby ponownie przydzielić strukturę danych ciągu.

Uwagi

Ten interfejs zarządza pamięcią używaną przez klasy ciągów niezależnych od MFC; takich jak CSimpleStringT, CStringT i CFixedStringT.

Tej klasy można również użyć do zaimplementowania niestandardowego menedżera pamięci dla niestandardowej klasy ciągów. Aby uzyskać więcej informacji, zobacz Zarządzanie pamięcią i CStringT.

Wymagania

Nagłówek: atlsimpstr.h

IAtlStringMgr::Przydziel

Przydziela nową strukturę danych ciągów.

CStringData* Allocate(int nAllocLength,int nCharSize) throw();

Parametry

nAllocLength
Liczba znaków w nowym bloku pamięci.

nCharSize
Rozmiar (w bajtach) typu znaków używany przez menedżera ciągów.

Wartość zwracana

Zwraca wskaźnik do nowo przydzielonego bloku pamięci.

Uwaga

Nie sygnalizuj nieudanej alokacji, zgłaszając wyjątek. Zamiast tego należy zasygnalizować niepowodzenie alokacji, zwracając wartość NULL.

Uwagi

Wywołaj metodę IAtlStringMgr::Free lub IAtlStringMgr::ReAllocate , aby zwolnić pamięć przydzieloną przez tę metodę.

Uwaga

Aby zapoznać się z przykładami użycia, zobacz Zarządzanie pamięcią i CStringT.

IAtlStringMgr::Clone

Zwraca wskaźnik do nowego menedżera ciągów do użycia z innym wystąpieniem CSimpleStringTklasy .

IAtlStringMgr* Clone() throw();

Wartość zwracana

Zwraca kopię IAtlStringMgr obiektu.

Uwagi

Często wywoływane przez platformę, gdy menedżer ciągów jest wymagany dla nowego ciągu. W większości przypadków this wskaźnik jest zwracany.

Jeśli jednak menedżer pamięci nie obsługuje użycia przez wiele wystąpień programu , powinien zostać zwrócony wskaźnik menedżera ciągów CSimpleStringTdo udostępniania.

Uwaga

Aby zapoznać się z przykładami użycia, zobacz Zarządzanie pamięcią i CStringT.

IAtlStringMgr::Free

Zwalnia strukturę danych ciągu.

void Free(CStringData* pData) throw();

Parametry

pData
Wskaźnik do bloku pamięci, który ma zostać zwolniony.

Uwagi

Zwalnia określony blok pamięci przydzielony wcześniej przez przydzielenie lub przydział rzeczywisty.

Uwaga

Aby zapoznać się z przykładami użycia, zobacz Zarządzanie pamięcią i CStringT.

IAtlStringMgr::GetNilString

Zwraca wskaźnik do struktury danych ciągu dla pustego ciągu.

CStringData* GetNilString() throw();

Wartość zwracana

Wskaźnik do obiektu użytego CStringData do reprezentowania pustego ciągu.

Uwagi

Wywołaj tę funkcję, aby zwrócić reprezentację pustego ciągu.

Uwaga

Podczas implementowania niestandardowego menedżera ciągów ta funkcja nigdy nie może zakończyć się niepowodzeniem. Można to zapewnić, osadzając wystąpienie klasy menedżera ciągów CNilStringData i zwracając wskaźnik do tego wystąpienia.

Uwaga

Aby zapoznać się z przykładami użycia, zobacz Zarządzanie pamięcią i CStringT.

IAtlStringMgr::Reallocate

Przydzieli strukturę danych ciągu.

CStringData* Reallocate(
    CStringData* pData,
    int nAllocLength,
    int nCharSize) throw();

Parametry

pData
Wskaźnik do pamięci wcześniej przydzielonej przez tego menedżera pamięci.

nAllocLength
Liczba znaków w nowym bloku pamięci.

nCharSize
Rozmiar (w bajtach) typu znaków używany przez menedżera ciągów.

Wartość zwracana

Zwraca wskaźnik na początek nowo przydzielonego bloku pamięci.

Uwagi

Wywołaj tę funkcję, aby zmienić rozmiar istniejącego bloku pamięci określonego przez wartość pData.

Wywołaj metodę IAtlStringMgr::Free , aby zwolnić pamięć przydzieloną przez tę metodę.

Uwaga

Aby zapoznać się z przykładami użycia, zobacz Zarządzanie pamięcią i CStringT.

Zobacz też

Wykres hierarchii
Klasy udostępnione ATL/MFC