Не могу открыть cfiledialog
Я получаю сообщение "необработанное исключение брошено: нарушение доступа на чтение. это был nullptr "в функции GetDlgItem в исходном файле“. winocc.cpp" из библиотеки МФЦ
CWnd* CWnd::GetDlgItem(int nID) const { ASSERT(::IsWindow(m_hWnd)); if (m_pCtrlCont == NULL) return CWnd::FromHandle(::GetDlgItem(m_hWnd, nID)); else return m_pCtrlCont->GetDlgItem(nID); }
Эта функция вызывается из :
_AfxActivationWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) { WNDPROC oldWndProc = (WNDPROC)::GetProp(hWnd, _afxOldWndProc); ASSERT(oldWndProc != NULL); LRESULT lResult = 0; TRY { BOOL bCallDefault = TRUE; switch (nMsg) { case WM_INITDIALOG: { DWORD dwStyle; CRect rectOld; CWnd* pWnd = CWnd::FromHandle(hWnd); _AfxPreInitDialog(pWnd, &rectOld, &dwStyle); bCallDefault = FALSE; lResult = CallWindowProc(oldWndProc, hWnd, nMsg, wParam, lParam); _AfxPostInitDialog(pWnd, rectOld, dwStyle); } break;
Что я уже пробовал:
Я не могу смотреть на ценность m_pCtrlCont и значение "это" равно нулю
Richard MacCutchan
Что-то не было инициализировано правильно; вам нужно будет использовать свой отладчик, чтобы узнать, где и как.
Richard MacCutchan
Мой предыдущий комментарий все еще применим. Ошибка находится в вашем коде, она поймана в библиотечных функциях. Единственный способ узнать, что происходит, - это использовать отладчик и отследить свой код.