Почему моя программа всегда выдает исключение нарушения прав доступа в mfc140d.dll? - PullRequest
0 голосов
/ 10 апреля 2019

Программа вылетает после 30-45 минут работы со следующим сообщением:

Exception Thrown at 0xFCA6551 (mfc140d.dll) in WinPDM.exe: 0xC0000005: Access Violation reading location 0x00000008.

Исключение возникает при запуске как в режиме отладки, так и из сборки выпуска в Visual Studio 2017. Программа неожиданно показываетошибки в окнах рендеринга и кнопках, и если кто-то пытается нажать кнопку или выбрать элемент, возникает исключение.Первоначально программа была написана на Visual C ++ 6.0 и несколько успешно перенесена в Visual Studio 2017. Многие ошибки были обнаружены и устранены после запуска встроенного анализатора intellisense в VS2017, но исключение по-прежнему возникает.Это также происходит в более старых версиях программы, встроенных в Visual C ++ 6.0.Я ищу предложения о том, как точно определить причину возникновения этой ошибки и как ее устранить.

Мы уже пытались отследить с помощью отладчика VS2017, а также попытались войти в вызов функции, где возникла исключительная ситуация.происходит:

size = m_ShiftList.GetDC()->GetTextExtent(str);

, но на этом этапе отладчик отказывается входить в функцию.Программа может пройти через эту точку без проблем в течение первых 30-45 минут работы.Удаление этого кода (поскольку мы можем жить, не зная размера текста), переместило то же исключение, чтобы оно появилось в другой точке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...