加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – CEdit :: GetLine()windows 7

发布时间:2020-12-16 09:34:01 所属栏目:百科 来源:网络整理
导读:我有以下代码段,其中m_edit是CEdit控件: TCHAR lpsz[MAX_PATH+1];// get the edit box textm_edit.GetLine(0,lpsz,MAX_PATH); 这适用于运行Windows XP及更早版本的计算机.我没有在Vista中测试过这个,但是在Windows 7上,lpsz会在其中插入垃圾unicode字符(有
我有以下代码段,其中m_edit是CEdit控件:

TCHAR lpsz[MAX_PATH+1];

// get the edit box text
m_edit.GetLine(0,lpsz,MAX_PATH);

这适用于运行Windows XP及更早版本的计算机.我没有在Vista中测试过这个,但是在Windows 7上,lpsz会在其中插入垃圾unicode字符(有时还会显示实际文本).想知道这里发生了什么?

解决方法

既然你正在使用MFC,你为什么不利用它的CString类?这是许多程序员被MFC吸引的原因之一,因为它使得使用字符串变得更加容易.

例如,您可以简单地写:

int len = m_edit.LineLength(m_edit.LineIndex(0));
CString path;
LPTSTR p = path.GetBuffer(len);
m_edit.GetLine(0,p,len);
path.ReleaseBuffer();

(以上代码经过测试,可在Windows 7上正常运行.)

请注意,复制的行不包含空终止字符(请参阅documentation中的“备注”部分).这可以解释您在更高版本的Windows中看到的无意义字符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读