아래와 같이 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()를 사용 후 반드시 호출되어야 하는 함수입니다.
반응형
댓글