Sdílet prostřednictvím


CStrBufT – třída

Tato třída poskytuje automatické vyčištění prostředků a GetBuffer ReleaseBuffer volání existujícího CStringT objektu.

Syntaxe

template<typename TCharType>
class CStrBufT

Parametry

TCharType
Typ znaku CStrBufT třídy. Může to být jedna z následujících možností:

  • char (pro řetězce znaků ANSI)

  • wchar_t (pro řetězce znaků Unicode)

  • TCHAR (pro řetězce znaků ANSI i Unicode)

Členové

Veřejné definice typedef

Název Popis
PCXSTR Ukazatel na konstantní řetězec.
PXSTR Ukazatel na řetězec.
StringType Typ řetězce, jehož vyrovnávací paměť má být manipulována specializacemi této šablony třídy.

Veřejné konstruktory

Název Popis
CStrBufT::CStrBufT Konstruktor pro objekt vyrovnávací paměti řetězce.

Veřejné metody

Název Popis
CStrBufT::SetLength Nastaví délku vyrovnávací paměti znaků přidruženého objektu řetězce.

Veřejné operátory

Název Popis
CStrBufT::operator PCXSTR const Načte ukazatel na vyrovnávací paměť znaků přidruženého objektu řetězce.
CStrBufT::operator PXSTR Načte ukazatel na vyrovnávací paměť znaků přidruženého objektu řetězce.

Veřejné konstanty

Název Popis
CStrBufT::AUTO_LENGTH Automaticky určí novou délku řetězce při vydání.
CStrBufT::SET_LENGTH Nastavte délku objektu řetězce v getBuffer time

Poznámky

Tato třída se používá jako obálka třídy pro nahrazení volání GetBuffer a ReleaseBuffer, nebo GetBufferSetLength a ReleaseBuffer.

Primárně navržena jako pomocná třída poskytuje CStrBufT vývojářům pohodlný způsob, jak pracovat s vyrovnávací pamětí znaků objektu řetězce, aniž by se museli starat o to, jak nebo kdy volat ReleaseBuffer. To je možné, protože objekt obálky v případě výjimky nebo více ukončující cesty kódu přirozeně zmizí z rozsahu; tím, že jeho destruktor uvolní prostředek řetězce.

Požadavky

Hlavička: atlsimpstr.h

CStrBufT::AUTO_LENGTH

Automaticky určí novou délku řetězce při vydání.

static const DWORD AUTO_LENGTH = 0x01;

Poznámky

Automaticky určí novou délku řetězce při vydání. Řetězec musí být ukončen s hodnotou null.

CStrBufT::CStrBufT

Vytvoří objekt vyrovnávací paměti.

CStrBufT(StringType& str, int nMinLength, DWORD dwFlags = AUTO_LENGTH) throw(...);
explicit CStrBufT(StringType& str) throw(...);

Parametry

Str
Řetězcový objekt přidružený k vyrovnávací paměti. Vývojář obvykle použije předdefinované definice typedef (varianty CStrBuf TCHAR), CStrBufA (char varianta) a CStrBufW (wchar_t varianta).

nMinLength
Minimální délka vyrovnávací paměti znaků.

dwFlags
Určuje, zda je délka řetězce automaticky určena. Může to být jedna z následujících možností:

Poznámky

Vytvoří vyrovnávací paměť řetězce pro přidružený objekt řetězce. Během sestavování se volá CSimpleStringT::GetBuffer nebo CSimpleStringT::GetBufferSetLength .

Všimněte si, že konstruktor kopírování je private.

CStrBufT::operator PCXSTR

Přímo přistupuje ke znakům uloženým v přidruženém objektu řetězce jako řetězec ve stylu jazyka C.

operator PCXSTR() const throw();

Návratová hodnota

Ukazatel znaku na data řetězce.

Poznámky

Voláním této funkce vrátíte ukazatel na vyrovnávací paměť znaků objektu řetězce. Obsah objektu řetězce nelze tímto ukazatelem změnit.

CStrBufT::operator PXSTR

Přímo přistupuje ke znakům uloženým v přidruženém objektu řetězce jako řetězec ve stylu jazyka C.

operator PXSTR() throw();

Návratová hodnota

Ukazatel znaku na data řetězce.

Poznámky

Voláním této funkce vrátíte ukazatel na vyrovnávací paměť znaků objektu řetězce. Vývojář může změnit obsah objektu řetězce tímto ukazatelem.

CStrBufT::P CXSTR

Ukazatel na konstantní řetězec.

typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;

CStrBufT::P XSTR

Ukazatel na řetězec.

typedef CSimpleStringT<TCharType>::PXSTR PXSTR;

CStrBufT::SET_LENGTH

Nastavte délku objektu řetězce v GetBuffer čase.

static const DWORD SET_LENGTH = 0x02;

Poznámky

Nastavte délku objektu řetězce v GetBuffer time.

Určuje, zda CSimpleStringT::GetBuffer a CSimpleStringT::GetBufferSetLength jsou volány při vytvoření objektu vyrovnávací paměti řetězce.

CStrBufT::SetLength

Nastaví délku vyrovnávací paměti znaků.

void SetLength(int nLength);

Parametry

nLength
Nová délka vyrovnávací paměti znaků objektu řetězce.

Poznámka:

Musí být menší nebo roven minimální délce vyrovnávací paměti určené v konstruktoru CStrBufT.

Poznámky

Voláním této funkce nastavíte délku řetězce reprezentované objektem vyrovnávací paměti.

CStrBufT::StringType

Typ řetězce, jehož vyrovnávací paměť má být manipulována specializacemi této šablony třídy.

typedef CSimpleStringT<TCharType> StringType;

Poznámky

TCharType je typ znaku použitý k specializaci šablony třídy.

Viz také

Graf hierarchie
Sdílené třídy ATL/MFC