CSimpleStringT::GetBuffer
Vrací do vyrovnávací paměti interní znak pro ukazatel CSimpleStringT objektu.
PXSTR GetBuffer(
int nMinBufferLength
);
PXSTR GetBuffer();
Parametry
nMinBufferLength
Minimální počet znaků, které mohou obsahovat znak vyrovnávací paměti.Tato hodnota nezahrnuje místo null zakončení.Pokud nMinBufferLength je větší než délka vyrovnávací paměti aktuální GetBuffer ničí aktuální vyrovnávací paměti, nahradí požadovaná velikost vyrovnávací paměti a obnoví referenční počet objektů na nulu.Pokud jste dříve nazývaný LockBuffer v této vyrovnávací paměti ztratíte zamknout vyrovnávací paměť.
Vrácená hodnota
PXSTR Ukazatel do vyrovnávací paměti objektu znak (zakončený hodnotou null).
Poznámky
Volání této metody vrátit obsah vyrovnávací paměti CSimpleStringT objektu.Vrácené PXSTR není konstanta a proto umožňuje přímou úpravu CSimpleStringT obsahu.
Pokud používáte ukazatel vrácený GetBuffer změnit obsah řetězce, musíte zavolat ReleaseBuffer před použitím jiných CSimpleStringT členských metod.
Adresa vrácené GetBuffer nemusí být platné po volání ReleaseBuffer protože další CSimpleStringT operace může způsobit CSimpleStringT přerozděleny vyrovnávací paměti.Vyrovnávací paměť není přerozděleny, pokud nezmění délku CSimpleStringT .
Vyrovnávací paměti je automaticky uvolněno, kdy CSimpleStringT objekt.
Sledovat, délka řetězce sami, připojíte neměli ukončujícím znakem null.Však musíte zadat délku řetězce konečné při uvolnění vyrovnávací paměti s ReleaseBuffer .Připojit ukončujícím znakem null, by měly předat pro délku –1 (výchozí).ReleaseBufferpak určuje délka vyrovnávací paměti.
Pokud není dostatek paměti k uspokojení GetBuffer požadavku, tato metoda vyvolá CMemoryException *.
Příklad
CSimpleString s(_T("abcd"), pMgr);
LPTSTR pBuffer = s.GetBuffer(10);
int sizeOfBuffer = s.GetAllocLength();
// Directly access CSimpleString buffer
_tcscpy_s(pBuffer, sizeOfBuffer, _T("Hello"));
ASSERT(_tcscmp(s, _T("Hello")) == 0);
s.ReleaseBuffer();
Požadavky
Záhlaví: atlsimpstr.h