vc2010 CString问题

[复制链接]
查看11 | 回复3 | 2010-6-20 09:01:02 | 显示全部楼层 |阅读模式
我把两个Edit控件分别关联为CString m_Edit1和CString m_Edit2,为什么下面代码会出现问题:
void CTestDlg::OnClickedButton1()
{
// 控件Button1单击动作
UpdateData(TRUE);
CString a=m_Edit1;

m_Edit2=a;
UpdateData(FALSE);
}
在Edit2中,会出现n个“烫”字,观察变量的时候,变量a在赋初值时就已经有n个“烫”字和一些乱码
会是系统的原因吗?我的系统是Win7 Ultimate 简体中文原版
vs2010也是简中原版
上面的写漏了
应是 CString a=myfunction(m_Edit1);//myfunction原型为 CString myfunction(CString str)

回复

使用道具 举报

千问 | 2010-6-20 09:01:02 | 显示全部楼层
字符串末尾没找到'\0'时,输出的字符串就会越界访问,出现乱码
回复

使用道具 举报

千问 | 2010-6-20 09:01:02 | 显示全部楼层
CString myfunction(CString str) 在这个函数中Edit2没有以NULL结尾,楼上正解
回复

使用道具 举报

千问 | 2010-6-20 09:01:02 | 显示全部楼层
在OnInitDialog()里将初始化m_Edit1="";m_Edit2="";
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行