2015-01-14 3 views
0

그래서 내 프로그램을 실행하려고 할 때 "어설 션이 실패했습니다"라는 오류 메시지가 표시됩니다. 사실이라면 어딘가의 조건이 아니라는 것을 의미한다는 것을 이해합니다. 그러나 나는 그것을 교정하는 방법을 모른다.Assert가 OnInitDialog()에서 실패했습니다.

오류는 다음 줄 우려 :

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

그래서 나는 그것이 "읽기 전용"상태에 대해하다는 얻을,하지만 나는 그것을 수정 위치를 알 수 없습니다.

저는 C++에서 새로운 기능이므로, 중요한 질문을 잊어 버린 경우 미안합니다. 사전에

감사합니다!

+2

창이 아직 생성되지 않았거나 파괴되었을 때 IsWindow 어설 션이 실패한다. 코드가 잘못된 위치에 있습니다. 예를 들어 대화 상자 생성자에서이 작업을 수행하려고하면 OnOnitDialog로 코드를 이동합니다. BTW, 질문 제목이 약간 이상해 보입니다 ... –

+0

예, 묻고 싶지 않았던 적이없는 오래된 질문의 제목이었습니다. 자동으로 복구되었으므로주의를 기울이지 않았습니다. 나는 당신이 고백 한 것을 시도 할 것입니다! – Histidine

+0

실제로 OnInidialog에 있습니다 ... 죄송합니다. 내가하고있는 모든 것을 정말로 이해하지 못하기 때문에 어떤 정보를 추가해야할지 모르겠습니다. – Histidine

답변

1

도움 주셔서 감사합니다. 마지막으로, 전체 코드를 한 줄씩 살펴본 후, DoDataExchange에서 두 개의 다른 변수 대신에 두 변수를 섞어서 두 번 넣었습니다 ... 그래서 어떻게 저에게 오류가 발생했는지 모릅니다. 나는 누군가가 같은 결석 한 실수를하고 그 오류를 얻는 경우에 당신을 계속 업데이트 할 것이라고 생각했다.

2

의 OnInitDialog 함수는 행 다음에 setReadOnly를로 통화를 이동

기본 클래스 기능

CDialog::OnInitDialog(); 
에 대한 호출이 포함되어 있습니다. 편집 제어 변수는 해당 행 다음에 대해서만 초기화됩니다.