刚使用MFC时,要在界面上显示字符串,总是提示类型不匹配,因为项目属性默认使用Unicode字符集。
于是就用到了_T(x)这个宏,在Unicode和多字节字符集下都可以编译通过。
_T(x) L ## x
_T(x) x
void CMFCApp_typeDlg::OnBnClickedOk()
{
CString sTemp = _T("字符串abc234");//L"字符串abc234" "字符串abc234"
size_t nSize = sizeof(sTemp); //Unicode字符集 4 多字节字符集 4
size_t nLen = sTemp.GetLength();//9 12
//SetDlgItemText(IDC_TIP, _T(""));
}
Unicode:一个中文字符长度为1,
多字节字符集:一个中文字符长度为2