When I #include <windows.h>
in C or C++ I am forced to decide the format of characters, where TCHAR
either equals char
or wchar_t
.
I've looked around quite a bit and as far as posts such as this one or sites like this point out the wchar_t
thing came about a long time ago before UTF8 and, for a variety of reasons, isn't a particularly good Unicode solution in modern programming. However these say nothing about support in existing systems already running in wchar_t
.
So my question is, which one should I use?
If I use plain old char
will this be abandoned by MS in the future, since at the end of the day, the wchar_t
version of the API is more recent?
Or if I use wchar_t
, will it be a pain to get my code running on other modern platforms, which developed later using plain old char
in UTF8?