코딩하면서 문득 _T() 매크로는 왜 사용하는걸까라고 생각했다.

 

이유는 간단하다.

 

Visual Studio의 예전 버전에서는 새 프로젝트를 생성할 때에도 유니코드 라이브러리를 사용할 것인지를

선택할 수 있었지만, 2013 버전부터는 유니코드 사용이 기본으로 설정되었다고 한다.

 

유니코드로 정의된 프로젝트에서 _T() 매크로를 사용하면

리터럴 문자열은 앞에 L 접두사를 붙여주고

멀티 바이트 문자 인코딩(MBSC)을 사용한 프로젝트라면

접두사 없이 저장한다.

 

이러한 이유로 Visual Studio 2013 버전부터는 _T() 매크로 사용을 권장하고 있다.

 

tchar.h 파일에 구현되어 있는 부분이다.

 

 

#ifdef  _UNICODE
#define __T(x)      L ## x
#else   /* ndef _UNICODE */
#define __T(x)      x


+ Recent posts