CString 데이터 값을 char *형 값으로 이용하기 위해

           CString str;

           str_T("Hellow");
           char *ss = CPSTR(CPCTSTR(str));



위와 같은 방법을 보통 이용한다.
물론 나도 그렇게 알고 있었는데...

일회성적으로 사용한다면 당장은 큰 문제를 갖지는 않는다.
하지만 그렇게 장기적 치명적 버그를 만들 가능성이 있다.

CString 객체... 생각보다 간단하게 구현된게 아니다.

CString 은 메모리 관리 효율과, 인자전달의 효율적 사용을 위해
"공유버퍼" 를 사용한다.

자세히 설명하긴 좀 길어지고
첨부 파일을 첨부한다.
(나도 가르침을 받은 파일인데... 허락 안받고 공개해도 되는 것인지는... 짤리진 않겠지 -_-)




CString 사용시 주의사항!!
1. 매개 변수를 CString을 넘길때 Reference 타입으로 넘기면 효울적
2. char * 형 변환시 (LPTSTR)(LPCTSTR) 사용 금지
3. GetBuffer() 호출 후, CString 멤버 함수를 호출하기 전에 ReleaseBuffer()를 꼭 호출할 것








Posted by six605
,