In addition to what @RussC said, TCHAR used by the Win32 API and is based on the definition of UNICODE , while _TCHAR used by the C runtime and is based on the definition of _UNICODE , UNICODE and _UNICODE are usually defined / omitted together, making TCHAR and _TCHAR interchangeable, but this not a requirement. They are semantically separated for use by various structures.
Remy Lebeau
source share