我今天应该使用 TCHAR 吗?

Should I use TCHAR today

我开始为 Windows 桌面开发一个用 C++ 编写的全新项目。当我学习 Windows 编程时,我读到使用 TCHAR 是一个很大的改进,因为我可以在不更改代码的情况下构建程序的 ANSI 或 Unicode 版本。但是,我从未真正使用过该选项来构建 ANSI 版本。此外,在 C++ 的标准库中,没有 TCHAR,我必须为 std::string、std::stringstream 等及其对应的宽字符串创建 typedef。所以目前我正在考虑放弃TCHAR转而支持wchar_t,我收集了以下优点和缺点。

优点:

缺点:

还有我的问题:

在现代 windows 中,所有 ANSI 函数都在内部将 char* 转换为 wchar_t* 并调用同一函数的 unicode 版本。基本上,通过采用 TCHAR 而不是 wchar_t 你什么也得不到,但必须处理古怪的语法。