유니코드 버전과 아스키 코드 버전

유니코드를 지원하지 않는 환경에 대비해 아스키 코드 버전과 유니코드 버전의 프로그램을 같이 만들어야 한다.

 

이는 번거롭기 때문에, C 표준은 아니어도 VC++에서 지원하는 tchar.h 헤더 파일을 이용하여 한개의 소스코드로 두가지 버전의 프로그램을 빌드 할 수 있다.

 

_tprintf(), _tcslen() 등의 함수를 사용할 수 있게되는데,

 

_UNICODE가 선언되어 있다면 위의 함수들은 wprintf()와 wcslen()으로 치환되어 컴파일 되며, 그렇지 않을 경우 즉, 아스키 버전을 위해서 _UNICODE를 선언하지 않고 컴파일 하면 된다.

 

이런 함수를 generic 함수라고 하기도 한다.

 

데이터 형의 generic 한 표현으로 TCHAR 가 선언되어 있다. char 와 wchar_t의 generic 한 표현이다.

 

문자열앞의 L매크로에 대해서는 _T(),__T(),_TEXT() 매크로가 선언되어 있다. 

 

컴파일 타임 시에는 L이 붙어서 컴파일 되든지, 그냥 컴파일 되든지 둘 중 하나가 된다.

'Programing > Windows Programming' 카테고리의 다른 글

윈도우즈와 유니코드  (0) 2019.04.26
C 언어와 유니코드  (0) 2019.04.26

+ Recent posts