Soft Ware/MFC !!

MFC 에서의 __T(x) 의 의미

달려가보자 2011. 10. 12. 16:09
만일 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!";

쉽게 여러 언어를 지원하는 프로그램을 만들기 위해 쓰는 것이다라고 생각하세요.