简单问题:string 不是std 的成员 ?
我在用ATL的正则表达式类 CAtlRegExp 验证用户输入的用户名时遇到如下问题:
#include <atlbase.h>
#include <atlrx.h>
void CRegisterDlg::OnBnClickedOk()
{
// 获取对话框中的数据
UpdateData(TRUE);
if(m_UserName.IsEmpty())
{
MessageBox("必须输入用户名!","警告",0);
GetDlgItem(IDC_EDIT_USERNAME)->SetFocus();
return;
}
else
{
CAtlRegExp<> re;
re.Parse( "[0-9a-zA-Z@\._\-]{6,20}" );
CAtlREMatchContext<> mc;
std::string test = (LPCTSTR)m_UserName; //m_UserName是CString类型
if(!re.Match( test.c_str(), &mc ))
MessageBox("用户名格式错误,请用6-20个英文字母及数字!","警告",0);
}
OnOK();
}
出现的编译错误是“string 不是std 的成员”,是否是CString m_UserName转换为string时出错?