MFC中L、_T()、_TEXT()、TEXT()区别
1、L
L"xxx"表示字符串使用Unicode编码。
2、_T()、_TEXT()、TEXT()
_T(“xxx”)、_TEXT("xxx")、TEXT("xxx")功能完全相同,兼容Unicode编码和ASCII编码。即如果项目使用Unicode字符集,那么将字符串"xxx"装换为L"xxx";如果项目使用ASCII字符集,那么“xxx”保持不变。
_T()和_TEXT()完全等价,根据_UNICODE来确定宏 。
TEXT(),根据UNICODE来确定宏 。
如果需要同时使用这3个宏,则需同时定义 UNICODE 和 _UNICODE
VS2010 ,设置:项目–属性–配置属性–常规–字符集–使用Unicode字符集,
那么编译器命令选项中的确同时加入了_UNICODE和UNICODE。
注:项目–属性–配置属性–C/C++–命令行
_UNICODE宏用于C运行期头文件,
UNICODE宏则用于Windows头文件.
当编译源代码模块时,通常必须同时定义这两个宏。
参考博客:https://blog.youkuaiyun.com/u012260238/article/details/52727648