老问题了c++,VS2013,CString宽字符,求大神

直接上代码,道理我都懂,求个解决方法
void CMFCApplication9Dlg::OnBnClickedButton01()
{
CString ID, Name;
GetDlgItem(ID_xuehao)->GetWindowText(ID);
GetDlgItem(ID_xingming)->GetWindowText(Name);
CString str, text;
str = _T('学号:') + ID + _T('姓名:') + Name + _T('\r\n');
str += _T('可选:可选01、可选02\r\n 必选: ');
for (int i = 0; i < 4; i++)
{
CButton*but = (CButton*)GetDlgItem(ID_CHECK1 + i);
if (but->GetCheck() == 1)
{
but->GetWindowText(text);
str += text + _T('、');
}
}
str = str.Left(str.GetLength() - 2);
MessageBox(str);
// TODO: 在此添加控件通知处理程序代码
}

warning C4066: 宽字符常量的第一个字符之外的字符被忽略

_T('学号:') + ID + _T('姓名:') + Name + _T('\r\n');

得到的结果是
学+ID+姓+Name+\r\n

就算是str = _T('学号:')

得到的结果还是只有第一个字符

求大神解答,不改多字符集,怎么编码能达到我想要的效果,本人小白,初学乍道,实在整不明白了

2个回答

所有字符串不能用单引号,要双引号

_T("学号:") + ID + _T"姓名:") + Name + _T("\r\n'";

warning C4066: 宽字符常量的第一个字符之外的字符被忽略
你用单引号,当作字符了,那么第一个字符之后的被忽略。双引号才是字符串。

好低级的错误哦

立即提问