【发布时间】:2017-09-22 05:37:48
【问题描述】:
在 Visual Studio 2015 中,当我尝试在富文本框中写入少于 4 个字符时,会出现异常(以下是附件)
在调试之后,我们知道 Ensure() 导致了异常:
int CRichEditCtrl::GetLine(_In_ int nIndex, _Out_writes_to_(nMaxLength, return) LPTSTR lpszBuffer, _In_ int nMaxLength) const
{
ASSERT(::IsWindow(m_hWnd));
ENSURE(sizeof(nMaxLength)<=nMaxLength*sizeof(TCHAR)&&nMaxLength>0);
*(LPINT)lpszBuffer = nMaxLength;
return (int)::SendMessage(m_hWnd, EM_GETLINE, nIndex, (LPARAM)lpszBuffer);
}
当我们在富文本框中输入少于 4 个字符时,
sizeof(nMaxLength)<=nMaxLength*sizeof(TCHAR)
在这种情况下 sizeof(nMaxLength) = 4 和 nMaxLength*sizeof(TCHAR) = 3 所以,3
现在,我需要帮助,我应该如何在富文本框中给出少于 4 个字符,以便此函数正常工作并且不会给出异常。
【问题讨论】:
标签: c++ visual-studio-2015 mfc richtextbox