항상 16비트 크기의 다국어 문자 코드이다. 와이드 문자 형식은 wchar_t
이다.
와이드 문자열을 써야했었을 때 검색을 통해 THCAR
와 wchar_t
타입을 발견했다. 하지만 그 당시 작성된지 오래된 글을 주로 클릭했는지 TCHAR
로 쓰여진 글이 더 많았고, TCHAR
를 사용하게 되었다. 나중에는 소스코드에 wchar_t
와 TCHAR
가 혼용된 상태가 되었다.
코드 리팩토링 단계에서 이를 하나로 통일해야 된다는 생각을 했고 검색을 통해 TCHAR
에 대해서 더 알게 됐다.
TCHAR
를 사용하는 경우, 문자가 유니코드일 경우 wchar_t
에 매핑되고 유니코드가 아닐 시 char
에 매핑된다.
또한 Window API 함수를 사용할 경우, 유니코드로 설정되어 있으면 MessageBox는 MessageBoxW에 매핑되고 그렇지 않으면 MessageBoxA에 매핑된다.
Windows 95/98/Me 가 유니코드를 지원하지 않았지만 그 이후 버전부터는 유니코드가 기본 문자 집합이 되었다. 그러므로 특별한 경우가 아닌 이상, TCHAR
를 쓰기보단 wchar_t
사용을 권장합니다.
https://docs.microsoft.com/ko-kr/cpp/c-language/multibyte-and-wide-characters?view=msvc-160