Is there any practical difference between WCHAR
and wchar_t
?
Does anybody know how old WCHAR
is? I would imagine it dates to at least Windows NT 3.1. I'd speculate that when Microsoft started using WCHAR
in the Windows headers, wchar_t
was not defined in either the C or C++ standard. Please correct me if I'm wrong.
Microsoft is in the unenviable position of having to support declarations and headers that a) must work in either C and C++ ; b) compile under very different architectures (i86, MIPS, PowerPC, Alpha, ...) and c) must be backwards-compatible with source code written for 15+ year old compilers. Plus, any breaking changes and thousands of books, reference manuals, online documentation, etc published over the last two decades would suddenly become WRONG.
WCHAR
is an interface—once it became published it was written in stone, even if it's not needed for new code.