在 OnInitDialog() 中断言失败

Assert failed in OnInitDialog()

所以当我想 运行 我的程序时,我有一个 "assertion failed" 错误消息。我知道这意味着在某个地方应该是真的条件不是,但我不知道如何纠正它。

错误涉及以下行:

_AFXWIN_INLINE BOOL CEdit::SetReadOnly(BOOL bReadOnly)
   { ASSERT(::IsWindow(m_hind)); return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L); }

所以我知道这是关于 "Read Only" 条件的,但我不知道在哪里更正它。

我是 C++ 的新手,很抱歉,如果我忘记在我的问题中添加重要信息。

提前致谢!

OnInitDialog 函数包含对基础 class 函数的调用

CDialog::OnInitDialog();

将对 SetReadOnly 的调用移到该行之后。编辑控制变量仅在该行之后初始化。

感谢您的帮助!最后,在逐行浏览整个代码之后,我意识到在 DoDataExchange 中我混淆了并在某个点放置了两次相同的变量而不是两个不同的变量......所以我真的不知道那是怎么让我出错的但是我想我会及时通知您最新情况,以防有人犯同样的心不在焉的错误并得到该错误 :)