我开始研究用C ++编写的Windows桌面的全新项目。当我学习Windows编程时,我读到使用TCHAR是一个很大的改进,因为我可以在不更改代码的情况下构建程序的ANSI或Unicode版本。但是,我从未真正使用该选项来构建ANSI版本。而且,在C ++的标准库中,没有TCHAR,我必须为std :: string,std :: stringstream等创建typedef以及它们的宽字符串对应物。所以目前我正在考虑放弃TCHAR而转向wchar_t,我收集了以下优点和缺点。
优点:
缺点:
我的问题:
答案 0 :(得分:1)
在现代窗口中,所有ANSI函数都在内部将char*
转换为wchar_t*
并调用相同函数的unicode版本。基本上,通过采用TCHAR
代替wchar_t
,你什么也得不到,但必须处理古怪的语法。