刚使用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
本文介绍在使用MFC框架进行界面开发时,如何正确使用_T宏来处理字符串,确保在Unicode和多字节字符集下都能正常编译。通过实例展示了不同类型字符集下字符串长度的计算差异。
1207

被折叠的 条评论
为什么被折叠?



