m_editText的类型为CEdit(来自MFC)。这在WinXP(32位)中有数百个用户已经运行了好几年,但是当Win7(64位)上的相同可执行文件时,一些用户(在strText中)获得了附加到文本的额外奇怪(即扩展,即垃圾)字符他们在编辑框控件(m_editText)中键入。我无法重现问题。我确认GetLine只复制了输入编辑框的字符(至少在我的机器上)。
TCHAR atchBuffer[256] = {0}; // initialize to all nulls
int nChrCount = m_editText.GetLine(0, atchBuffer, 255);
CString strText;
if (nChrCount!=0)
strText = CString(atchBuffer);
这是在WinXP(32位)上的Visual C ++ 6中编译(调试版本),MFC 5静态链接。我们将非常感谢您提供的任何见解。
答案 0 :(得分:1)
更改您的代码:
if (nChrCount!=0)
strText = CString(atchBuffer, nChrCount);
确保没有任何垃圾/未初始化的数据被添加到CString中,只有控件中的字符添加。