c – CEdit :: GetLine()windows 7

c – CEdit :: GetLine()windows 7,第1张

概述我有以下代码段,其中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 textm_edit.Getline(0,lpsz,MAX_PATH);

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

解决方法@H_301_17@ 既然你正在使用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中看到的无意义字符.

总结

以上是内存溢出为你收集整理的c – CEdit :: GetLine()windows 7全部内容,希望文章能够帮你解决c – CEdit :: GetLine()windows 7所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存