CStrBufT-klass

Anmärkning

Microsoft Foundation-klassbiblioteket (MFC) och ACTIVE Template Library (ATL) fortsätter att stödjas. Vi lägger dock inte längre till funktioner eller uppdaterar dokumentationen.

Den här klassen tillhandahåller automatisk resursrensning för GetBuffer och ReleaseBuffer anrop på ett befintligt CStringT objekt.

Syntax

template<typename TCharType>
class CStrBufT

Parameterar

TCharType
Klassens CStrBufT teckentyp. Kan vara något av följande:

  • char (för ANSI-teckensträngar)

  • wchar_t (för Unicode-teckensträngar)

  • TCHAR (för både ANSI- och Unicode-teckensträngar)

Medlemmar

Offentliga typedefs

Namn Description
PCXSTR En pekare till en konstant sträng.
PXSTR En pekare till en sträng.
StringType Strängtypen vars buffert ska manipuleras av specialiseringar av den här klassmallen.

Offentliga konstruktorer

Namn Description
CStrBufT::CStrBufT Konstruktorn för strängbuffertobjektet.

Offentliga metoder

Namn Description
CStrBufT::SetLength Anger längden på teckenbufferten för det associerade strängobjektet.

Offentliga operatörer

Namn Description
CStrBufT::operator PCXSTR Hämtar en const pekare till teckenbufferten för det associerade strängobjektet.
CStrBufT::operator PXSTR Hämtar en pekare till teckenbufferten för det associerade strängobjektet.

Offentliga konstanter

Namn Description
CStrBufT::AUTO_LENGTH Bestäm automatiskt den nya längden på strängen vid lanseringen.
CStrBufT::SET_LENGTH Ange längden på strängobjektet vid GetBuffer-tid

Anmärkningar

Den här klassen används som en omslutningsklass för att ersätta anrop till GetBuffer och ReleaseBuffer, eller GetBufferSetLength och ReleaseBuffer.

I första hand utformad som en hjälpklass, CStrBufT är ett bekvämt sätt för en utvecklare att arbeta med teckenbufferten för ett strängobjekt utan att behöva oroa sig för hur eller när de ska anropa ReleaseBuffer. Detta är möjligt eftersom omslutningsobjektet går utanför omfånget naturligt i händelse av ett undantag eller flera avslutande kodsökvägar. vilket gör att dess destructor frigör strängresursen.

Kravspecifikation

Rubrik: atlsimpstr.h

CStrBufT::AUTO_LENGTH

Bestäm automatiskt den nya längden på strängen vid lanseringen.

static const DWORD AUTO_LENGTH = 0x01;

Anmärkningar

Bestäm automatiskt den nya längden på strängen vid lanseringen. Strängen måste vara null-avslutad.

CStrBufT::CStrBufT

Konstruerar ett buffertobjekt.

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

Parameterar

Str
Strängobjektet som är associerat med bufferten. Normalt använder utvecklaren fördefinierade typedefs av CStrBuf (TCHAR-variant), CStrBufA (char variant) och CStrBufW (wchar_t variant).

nMinLength
Minsta längd på teckenbufferten.

dwFlags
Avgör om stränglängden bestäms automatiskt. Kan vara något av följande:

Anmärkningar

Skapar en strängbuffert för det associerade strängobjektet. Under konstruktionen anropas CSimpleStringT::GetBuffer eller CSimpleStringT::GetBufferSetLength .

Observera att kopieringskonstruktorn är private.

CStrBufT::operator PCXSTR

Direktåtkomst till tecken som lagras i det associerade strängobjektet som en sträng i C-stil.

operator PCXSTR() const throw();

Returvärde

En teckenpekare till strängens data.

Anmärkningar

Anropa den här funktionen för att returnera en pekare till teckenbufferten för ett strängobjekt. Det går inte att ändra innehållet i strängobjektet med den här pekaren.

CStrBufT::operator PXSTR

Direktåtkomst till tecken som lagras i det associerade strängobjektet som en sträng i C-stil.

operator PXSTR() throw();

Returvärde

En teckenpekare till strängens data.

Anmärkningar

Anropa den här funktionen för att returnera en pekare till teckenbufferten för ett strängobjekt. Utvecklaren kan ändra innehållet i strängobjektet med den här pekaren.

CStrBufT::P CXSTR

En pekare till en konstant sträng.

typedef CSimpleStringT<TCharType>::PCXSTR PCXSTR;

CStrBufT::P XSTR

En pekare till en sträng.

typedef CSimpleStringT<TCharType>::PXSTR PXSTR;

CStrBufT::SET_LENGTH

Ange längden på strängobjektet vid GetBuffer tidpunkten.

static const DWORD SET_LENGTH = 0x02;

Anmärkningar

Ange längden på strängobjektet vid GetBuffer-tid.

Avgör om CSimpleStringT::GetBuffer och CSimpleStringT::GetBufferSetLength anropas när strängbuffertobjektet skapas.

CStrBufT::SetLength

Anger längden på teckenbufferten.

void SetLength(int nLength);

Parameterar

nLength
Den nya längden på strängobjektets teckenbuffert.

Anmärkning

Måste vara mindre än eller lika med den minsta buffertlängd som anges i konstruktorn för CStrBufT.

Anmärkningar

Anropa den här funktionen för att ange längden på strängen som representeras av buffertobjektet.

CStrBufT::StringType

Strängtypen vars buffert ska manipuleras av specialiseringar av den här klassmallen.

typedef CSimpleStringT<TCharType> StringType;

Anmärkningar

TCharType är den teckentyp som används för att specialisera klassmallen.

Se även

hierarkidiagram
Delade ATL/MFC-klasser