C++ OnInitDialog()中的断言失败

C++ OnInitDialog()中的断言失败,c++,windows,visual-studio-2010,mfc,assertion,C++,Windows,Visual Studio 2010,Mfc,Assertion,因此,当我想要运行我的程序时,我有一条“断言失败”的错误消息。我明白这意味着在某个地方,一个应该为真的条件是不正确的,但我不知道如何纠正它 错误与以下行有关: _AFXWIN_INLINE BOOL CEdit::SetReadOnly(BOOL bReadOnly) { ASSERT(::IsWindow(m_hind)); return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L); } 所以我知道这是关于“只读

因此,当我想要运行我的程序时,我有一条“断言失败”的错误消息。我明白这意味着在某个地方,一个应该为真的条件是不正确的,但我不知道如何纠正它

错误与以下行有关:

_AFXWIN_INLINE BOOL CEdit::SetReadOnly(BOOL bReadOnly)
   { ASSERT(::IsWindow(m_hind)); return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L); }
所以我知道这是关于“只读”条件的,但我不知道该在哪里纠正它

我是C++新手,如果我忘了把重要的信息放在我的问题里,那么抱歉。p>
提前谢谢

OnInitDialog函数包含对基类函数的调用

CDialog::OnInitDialog();

将呼叫移动到该行之后的SetReadOnly。编辑控制变量仅在该行之后初始化。

OnInitDialog函数包含对基类函数的调用

CDialog::OnInitDialog();

将呼叫移动到该行之后的SetReadOnly。编辑控制变量仅在该行之后初始化。

OnInitDialog函数包含对基类函数的调用

CDialog::OnInitDialog();

将呼叫移动到该行之后的SetReadOnly。编辑控制变量仅在该行之后初始化。

OnInitDialog函数包含对基类函数的调用

CDialog::OnInitDialog();


将呼叫移动到该行之后的SetReadOnly。编辑控制变量仅在该行之后初始化。

谢谢您的帮助!最后,在逐行检查了整个代码之后,我意识到在DoDataExchange中,我混合并在某个点放置了两个相同的变量,而不是两个不同的变量。。。所以我真的不知道这是怎么让我犯下这个错误的,但我想我会让你知道最新情况,以防有人犯同样的心不在焉的错误并犯下这个错误:)

谢谢你的帮助!最后,在逐行检查了整个代码之后,我意识到在DoDataExchange中,我混合并在某个点放置了两个相同的变量,而不是两个不同的变量。。。所以我真的不知道这是怎么让我犯下这个错误的,但我想我会让你知道最新情况,以防有人犯同样的心不在焉的错误并犯下这个错误:)

谢谢你的帮助!最后,在逐行检查了整个代码之后,我意识到在DoDataExchange中,我混合并在某个点放置了两个相同的变量,而不是两个不同的变量。。。所以我真的不知道这是怎么让我犯下这个错误的,但我想我会让你知道最新情况,以防有人犯同样的心不在焉的错误并犯下这个错误:)

谢谢你的帮助!最后,在逐行检查了整个代码之后,我意识到在DoDataExchange中,我混合并在某个点放置了两个相同的变量,而不是两个不同的变量。。。所以我真的不知道这是怎么让我犯下这个错误的,但我想我会让你不断更新,以防有人犯同样的心不在焉的错误并得到那个错误:)

IsWindow断言在窗口尚未创建(或销毁)时失败。你的代码放错地方了。例如,如果尝试在对话框构造函数中执行此操作,请将代码移动到OnOnInitDialog。顺便说一句,这个问题的标题看起来有点奇怪……是的,对不起,这是一个我想问但从未问过的老问题的标题,它被自动恢复,我没有注意。我要试试你的建议谢谢!事实上,它在OniDialog上。。。对不起,因为我不太明白我在做什么,我真的不知道我应该添加什么信息。我认为
m_hind
是一个印刷错误。尽管令人困惑,因为您不应该再次键入代码,但只需从IDE复制并粘贴即可。我是否应该在我的OnIni对话框中有以下行:
BOOL SetReadOnly(BOOL bReadOnly=TRUE)IsWindow断言在尚未创建(或销毁)窗口时失败。你的代码放错地方了。例如,如果尝试在对话框构造函数中执行此操作,请将代码移动到OnOnInitDialog。顺便说一句,这个问题的标题看起来有点奇怪……是的,对不起,这是一个我想问但从未问过的老问题的标题,它被自动恢复,我没有注意。我要试试你的建议谢谢!事实上,它在OniDialog上。。。对不起,因为我不太明白我在做什么,我真的不知道我应该添加什么信息。我认为
m_hind
是一个印刷错误。尽管令人困惑,因为您不应该再次键入代码,但只需从IDE复制并粘贴即可。我是否应该在我的OnIni对话框中有以下行:
BOOL SetReadOnly(BOOL bReadOnly=TRUE)IsWindow断言在尚未创建(或销毁)窗口时失败。你的代码放错地方了。例如,如果尝试在对话框构造函数中执行此操作,请将代码移动到OnOnInitDialog。顺便说一句,这个问题的标题看起来有点奇怪……是的,对不起,这是一个我想问但从未问过的老问题的标题,它被自动恢复,我没有注意。我要试试你的建议谢谢!事实上,它在OniDialog上。。。对不起,因为我不太明白我在做什么,我真的不知道我应该添加什么信息。我认为
m_hind
是一个印刷错误。尽管令人困惑,因为您不应该再次键入代码,但只需从IDE复制并粘贴即可。我是否应该在我的OnIni对话框中有以下行:
BOOL SetReadOnly(BOOL bReadOnly=TRUE)IsWindow断言在尚未创建(或销毁)窗口时失败。你的代码放错地方了。例如,如果尝试在对话框构造函数中执行此操作,请将代码移动到OnOnInitDialog。顺便说一句,这个问题的标题看起来有点奇怪……是的,对不起,这是一个我想问但从未问过的老问题的标题,它被自动恢复,我没有注意。我要试试你的建议谢谢!事实上,它在OniDialog上。。。对不起,因为我不太明白我在做什么,我真的不知道我应该添加什么信息。我认为
m_hind
是一个印刷错误。虽然令人困惑,因为您不应该再次键入代码,但只需从IDE复制并粘贴即可