Share via


CSimpleStringT::GetBuffer

내부 문자 버퍼에 대 한 포인터를 반환 된 CSimpleStringT 개체입니다.

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

매개 변수

  • nMinBufferLength
    최소한의 문자를 문자 버퍼에 저장할 수 있습니다.이 값은 null 종결자를 포함 되지 않습니다.

    경우 nMinBufferLength 는 현재 버퍼의 길이 보다 큰 GetBuffer 현재 버퍼 삭제 요청 된 크기의 버퍼를 바꾸고 개체의 참조 횟수가 0으로 재설정 합니다.이전에 호출한 경우 LockBuffer 이 버퍼에서 버퍼 잠금을 패배.

반환 값

PXSTR 개체의 문자 (null로 끝나는) 버퍼에 대 한 포인터입니다.

설명

버퍼의 내용을 반환 하려면이 메서드를 호출 하 여 CSimpleStringT 개체입니다.반환 되는 PXSTR 상수 이며 따라서 직접 수정할 수 있도록 CSimpleStringT 내용.

반환 되는 포인터를 사용 하는 경우 GetBuffer 문자열의 내용을 변경 하 여 호출 해야 ReleaseBuffer 기타를 사용 하기 전에 CSimpleStringT 멤버 메서드.

반환 주소 GetBuffer 를 호출 하면 사용할 수 없습니다 ReleaseBuffer 때문에 추가 CSimpleStringT 작업이 발생할 수 있습니다는 CSimpleStringT 버퍼를 다시 할당 합니다.버퍼의 길이 변경 하지 않으면 다시 할당 되는 CSimpleStringT.

버퍼 메모리를 자동으로 해제 시기는 CSimpleStringT 개체는 소멸 됩니다.

문자열 길이 자신을 추적 하는 경우 종료 null 문자를 추가 해서는 안 됩니다.그러나 버퍼를 놓으면 마지막 문자열 길이 지정 해야 ReleaseBuffer.Null 종결 문자를 추가 하지 않으면 길이 – 1 (기본값)을 전달 해야 합니다.ReleaseBuffer그런 다음 버퍼 길이 결정합니다.

메모리가 부족 하 여 만족 하는 경우는 GetBuffer 요청을이 메서드에서 throw CMemoryException *.

예제

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

요구 사항

헤더: atlsimpstr.h

참고 항목

참조

CSimpleStringT 클래스

CSimpleStringT::GetBufferSetLength

CSimpleStringT::ReleaseBuffer