오전 10:36 2004-01-06
조경민 bro@shinbiro.com
UNICODE와 CString
=======================================================
CString::GetLength()는 A count of the bytes in the string.
라고 써있지만 UNICODE에서도 _T("hello")는 5를 리턴한다.
int mem_len = _tcslen( (LPCTSTR)s )*sizeof(TCHAR)+sizeof(TCHAR);
하면 실제 사이즈를 얻을 수 있을것이다.
CString s;
s.GetBufferSetLength( 10 );
를 하면 MBCS에서 UNICODE에서 각각 11 , 22 바이트를 할당하는 것을
의미한다 null을 포함하지 않는 문자열의 길이를 넣게 되어 있다.
_tcscpy( s, _T("hello") );
s.GetLength() == 10
s.ReleseBuffer();
를 하면 정확한 버퍼의 길이로 재조정된다.
s.GetLength() == 5
헷갈리면 GetLength()와 GetBuffer 류 사용보다는 직접 문자열 계산을
하는 것이 날듯하다.
조경민 bro@shinbiro.com
UNICODE와 CString
=======================================================
CString::GetLength()는 A count of the bytes in the string.
라고 써있지만 UNICODE에서도 _T("hello")는 5를 리턴한다.
int mem_len = _tcslen( (LPCTSTR)s )*sizeof(TCHAR)+sizeof(TCHAR);
하면 실제 사이즈를 얻을 수 있을것이다.
CString s;
s.GetBufferSetLength( 10 );
를 하면 MBCS에서 UNICODE에서 각각 11 , 22 바이트를 할당하는 것을
의미한다 null을 포함하지 않는 문자열의 길이를 넣게 되어 있다.
_tcscpy( s, _T("hello") );
s.GetLength() == 10
s.ReleseBuffer();
를 하면 정확한 버퍼의 길이로 재조정된다.
s.GetLength() == 5
헷갈리면 GetLength()와 GetBuffer 류 사용보다는 직접 문자열 계산을
하는 것이 날듯하다.
'KB > MFC/Win32' 카테고리의 다른 글
인터넷 되는지 확인하는 코드 (0) | 2004.03.19 |
---|---|
Connecting to a Running Instance of Internet Explorer (0) | 2004.03.19 |
MSDN Unicode 관련 설명 해석 (0) | 2004.03.19 |
유니코드 텍스트 파일 안의 2바이트 시그니처 (0) | 2004.03.19 |
웹에서 파일 다운받기 (0) | 2004.03.19 |