MFC 응용 프로그램을 작성 중이며 CMFCRibbonStatusPane
에서 공개적으로 파생 된 파생 클래스 CStatusBarPane
을 만들었습니다. 메인 프레임을 만든 후 (상태 표시 줄과 함께 그 아이들이 나아가고)명백한 nullptr이없는 액세스 위반
virtual void SetStatusIcon(_In_ HICON hIcon)
{
m_hIconSmall = hIcon;
Redraw();
}
, 나는 다음과 같은 함수를 호출 : 다음과 같이 파생 클래스는 간단한 방법을 포함하지만
void CMainFrame::UpdateStatusBar(_In_ const std::tstring& szStatus, _In_opt_ HICON hIcon)
{
CStatusBarPane* pStatusBarPane = static_cast<CStatusBarPane*>(m_wndStatusBar.GetElement(0));
pStatusBarPane->SetText(szStatus.c_str());
pStatusBarPane->SetStatusIcon(hIcon);
}
, Project.exe에 0x00000000의에서
첫 번째 예외 : 나는 응용 프로그램을 디버깅 할 때, 다음과 같은 문장으로 라인
pStatusBarPane->SetStatusIcon(hIcon)
에 예외가 발생가 0xc0000005 : 액세스 위반 EXE를 절단 위치 0x00000000.
그러나 변수 추적에서 찾고 액세스하고 더 널 포인터가 없음을 보여주고, 그래서 내가 주소 0에서 액세스 위반이 있는지 이해할 수 없어요?
미리 감사드립니다.
나는 단지 그렇게했다고 믿을 수 없다. 몇 번 확인해 보았습니다. 여기에서는 코드 생성 라인을 입력 할 때만 마침내 파생 클래스 대신 기본 클래스를 만들었습니다. 나는 바보 야, 고마워! –