As I understand it, Windows #defines TCHAR as the correct character type for your application based on the build - so it is wchar_t
in UNICODE builds and char
I believe the time when it was advisable to release non-unicode versions of your application (to support Win95, or to save a KB or two) is long past: nowadays the underlying Windows system you'll support are going to be unicode-based (so using char-based system interfaces will actually complicate the code by interposing a shim layer from the library) and it's doubtful whether you'd save any space at all. Go std::wstring
, young man!-)