1

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 静态链接。提供的任何见解将不胜感激。

4

1 回答 1

1

像这样更改您的代码:

if (nChrCount!=0)
    strText = CString(atchBuffer, nChrCount);

确保不会将任何垃圾/未初始化数据添加到 CString,只有控件中的字符。

于 2012-05-20T09:01:20.957 回答