2009년 07월 13일
Visual Studio 2005 문자열
Visual Studio 2005는 기본적으로 Unicode를 사용하고 있습니다. Unicode는 모든 나라들의 언어를 수용할 수 있도록 설계가 되어있습니다. 영문자의 경우에도 Unicode는 2바이트를 사용하고 있습니다.
Unicode와 다른 것은 MBCS 코드 체계라고 합니다. 일반적으로 VC 6.0, 2003은 MBCS 코드를 기본으로 사용하고 있습니다.
strcpy 함수는 MBCS 함수입니다. 그렇기 때문에 _T 마크로를 사용하시면 안 됩니다.
호환성을 유지하고자 하신다면 다음과 같이 사용하셔야 맞습니다.
_tcscpy(m_logFont.lfFaceName, _T("Times New Roman"));
그리고
pDC->DrawText("Hello", &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); 에서는
pDC->DrawText(_T("Hello"), &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); 로 바꾸셔야합니다.
_T("string")은 MBCS 코드에서는 "string"으로 Unicode 코드에서는 L"string"으로 바꾸어줍니다.
_T() 마크로를 잘 사용하셔야합니다.
그리고 대부분의 문자열 함수는 3가지가 있다는 점에 유념하세요.
_tcscpy() 와 같은 함수는 호환성을 유지해주는 함수입니다.
strcpy() 함수는 MBCS용 함수입니다. 함수 파라미터로 절대 Unicode 또는 _T() 형태를 써서는 안 됩니다.
wcscpy() 함수는 Unicode용 함수입니다.
DrawText는 호환성을 유지해주는 함수입니다. 안에 _T() 형태의 문자열을 사용하셔야합니다.
DrawTextA는 MBCS용 함수입니다.
DrawTextW는 Unicode용 함수입니다. L"string" 형태의 문자열을 사용하셔야합니다.
출처: Naver 지식IN
# by | 2009/07/13 17:14 | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]