본문 바로가기
프로그래밍/C, C++

MFC - CString GetBuffer(), ReleaseBuffer() 사용

by 꾸션 2019. 1. 25.

아래와 같이 char배열 포인터를 받아서 전화번호 문자열을 복사해주는 함수가 있다고 가정했을 때,

void GetPhoneNumber(char *buf)
{
  strcpy(buf, "010-1234-5678");
}

 

받은 전화번호 데이터를 다시 CString으로 처리해야하는 경우, 보통 아래와 같이 처리를 합니다.

CString str;
char sz[20] = { 0, };

GetPhoneNumber(sz);

str = sz;

// str 사용...

 

이를 CString의 GetBuffer(), GetRelease()함수를 사용하여 아래와 같이 간단하게 처리할 수 있습니다.

CString str;

GetPhoneNumber(str.GetBuffer(20));
str.ReleaseBuffer();

// str 사용...

 

CString과 GetBuffer(), RelaseBuffer()에 대한 간단한 설명은 아래와 같습니다.

  • CString는 MFC(Microsft Foundation Classes)에서 제공하는 문자열 클래스입니다.
  • GetBuffer()는 주어진 값의 길이로 임의 버퍼를 생성하고, 그 버퍼에 대한 포인터를 리턴합니다.
  • ReleaseBuffer()는 임의로 생성한 버퍼를 CString객체에 업데이트 하고, 임시 버퍼를 소멸시킵니다. GetBuffer()를 사용 후 반드시 호출되어야 하는 함수입니다.

 

반응형

댓글