CString -> char *

1. 형 변환 하여 포인터 값을 참조할 경우
CString strTemp;
strTemp = "Hello";
char *pszStr = (LPSTR)(LPCTSTR) strTemp;

2. CString 객체 내부에 char 형식으로 수정/편집할 경우
CString strTemp;
strTemp = "Hello";

char *pszStr = (LPSTR)strTemp.GetBuffer(0);
// pszStr 사용 //
strTemp.ReleaseBuffer();

※ GetBuffer()로 CString 포인터를 이용할 경우
CString 객체가 살아 있을 경우에만 포인터를 사용할 수 있다.
GetBuffer(버퍼크기) 버퍼 크기를 설정해주면 원하는 크기의 버퍼를 받는다.
(0 = 문자열이 있는 길이 만큼의 버퍼)

※ CString 맴버 함수를 사용할 경우에 반드시 ReleaseBuffer() 호출 후에 사용해야 한다.

---------------------------------------------------------

char * --> CString

1. 문자열 변환시(Format 이용)
char szStr[] = "Hello";
CString str;
str.Format("%s", szStr);

2. CString 생성자 이용
CString str( (LPCTSTR) szStr );

3. GetBuffer 이용
char szStr[] = "Hello";

CString str;
strcpy( str.GetBuffer(100), szStr );
str.ReleaseBuffer();


----------------------------------------------------------

문자열 복사
1. CString -> char*

CString strData = "하하하";
int len = strData.GetLength();
char* sz = new char[len];
strcpy(sz, strData.GetBuffer(0));
strData.ReleaseBuffer();


2. _tcscpy_s를 이용한 복사
CString str( "This is a Test" );
int nStrLength = str.GetLength() + 1;
LPTSTR lpsz = new TCHAR[ nStrLength ];
_tcscpy_s( lpsz, nStrLength, str );


strcpy_s ANSI 스타일
_tcscpy_s ANSI, UNICODE 둘다 지원( TCHAR와 비슷 )
 
2006/05/13 22:51 2006/05/13 22:51

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요