Aracılığıyla paylaş


CSimpleStringT::GetBuffer

Dahili karakter arabelleği için bir işaretçi döndürür CSimpleStringT nesnesi.

PXSTR GetBuffer(
   int nMinBufferLength
);
PXSTR GetBuffer();

Parametreler

  • nMinBufferLength
    En az sayıda karakter arabelleği tutabilir karakteri.Bu değer null Sonlandırıcı alanı içermez.

    nMinBufferLength Geçerli arabellek uzunluğundan daha büyük GetBuffer geçerli arabellek yok eder, istenen boyuttaki bir arabelleği ile yerini alır ve nesne başvurusu sayısı sıfır olarak sıfırlar.Daha önce aradığınız, LockBuffer bu arabellek üzerinde arabellek kilidi kaybedersiniz.

Dönüş Değeri

Bir PXSTR nesnenin (boşla sonlandırılmış) karakter arabelleği için işaretçi.

Notlar

Tampon içeriğini döndürmek için bu yöntemi çağırın CSimpleStringT nesnesi.Döndürülen PXSTR sabit değildir ve bu nedenle doğrudan değiştirilmesine izin verir CSimpleStringT içeriği.

Tarafından döndürülen işaretçi kullanırsanız, GetBuffer dize içeriğini değiştirmek için çağırmanız gerekir ReleaseBuffer diğer kullanmadan önce CSimpleStringT üye yöntemleri.

Tarafından döndürülen adres GetBuffer çağrısının geçerli olmayabilir ReleaseBuffer çünkü ek CSimpleStringT neden olabilecek işlemleri CSimpleStringT bırakılan için arabellek.Uzunluğunu değiştirmezseniz arabellek ayrılırken değil CSimpleStringT.

Tampon bellek otomatik olarak ne zaman serbest CSimpleStringT nesne bozulur.

Dize uzunluğu kendiniz izleyebilmek, sondaki boş karakter eklememeniz gerekir.Ancak, arabelleği serbest bıraktığınızda son dize uzunluğunu belirtmelisiniz ReleaseBuffer.Sondaki boş karakter ekleme, uzunluğu için (varsayılan) –1 göndermesi gerekir.ReleaseBufferDaha sonra arabellek uzunluğu belirler.

Karşılamak için yeterli bellek yok ise GetBuffer isteği, bu yöntem atan CMemoryException *.

Örnek

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();   

Gereksinimler

Başlık: atlsimpstr.h

Ayrıca bkz.

Başvuru

CSimpleStringT sınıfı

CSimpleStringT::GetBufferSetLength

CSimpleStringT::ReleaseBuffer