_T 매크로는
_T("문자열") 이라고 썼을때
_UNICODE가 define 되어 있으면 L"문자열" 을 리턴하고
define되어있지 않으면 그냥 "문자열" 을 리턴 합니다.
문자열 앞에 L 접두사가 붙으면 그 문자열은 유니코드 형태로 인식 되는겁니다.
만일 tchar.h전에 _UNICODE 가 define 되면 다음과 같이 정의됩니다.
자세히 하면
#define __T(x) L##x
즉 __T("Melong") 은 L"Melong" 으로 치환되게 됩니다.
정의되어 있지 않으면 다음과 같이~
#define __T(x) x
네, __T("x") 는 그냥 "x" 입니다.
그리고 다음과 같이 또 define 되어 있죠
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
_T 대신 _TEXT라고 써도 됩니다.
L"Melong"이 황당하시죠? 이것은 C++문법으로 확장문자열을 뜻합니다. 다음과
같이 확장문자열 포인터를 지정할 수 있죠
wchar_t *p = L"Melong!";
쉽게 여러 언어를 지원하는 프로그램을 만들기 위해 쓰는 것이다라고 생각하세요.
ㄳㄳ :>
[출처] 참고... 문자열 _T("")와 L""|작성자 3류 코더
'MFC' 카테고리의 다른 글
[MFC] 출력 폰트 키우기 (0) | 2014.02.28 |
---|---|
[MFC] CString To TCHAR 변환하기 (0) | 2014.02.27 |
[MFC] Button 에 Bitmap 입히기 (0) | 2014.02.27 |
[MFC] Excel Automation 프로젝트 세팅하기 (2) | 2014.02.27 |
[MFC] token 분리함수 ( AfxExtractSubString ) (0) | 2014.02.26 |