Qt GUI перестал работать - PullRequest
0 голосов
/ 14 июля 2011

Я занимаюсь разработкой приложения для Windows, используя для разработки компьютер под управлением Windows XP. Приложение работает нормально на Windows XP, утечки памяти нет. Работа на Windows 7 Home Premium машина, однако, доставляет мне проблемы, но только иногда.

Я занимаюсь разработкой приложения Qt, использующего OpenCV и OpenGL, и оно падает только в W7 после некоторого времени воспроизведения видео с веб-камеры. Ошибка следующая:

Problem signature:
Problem Event Name: APPCRASH
Application Name:   QtRIC.exe
Application Version:    0.0.0.0
Application Timestamp:  4e6ff3a5
Fault Module Name:  MSVCR90.dll
Fault Module Version:   9.0.30729.4940
Fault Module Timestamp: 4ca2ef57
Exception Code: c0000005
Exception Offset:   00024651
OS Version: 6.1.7601.2.1.0.768.3
Locale ID:  1033
Additional Information 1:   0a9e
Additional Information 2:   0a9e372d3b4ad19135b953a78882e789
Additional Information 3:   0a9e
Additional Information 4:   0a9e372d3b4ad19135b953a78882e789

Я прочитал другие вопросы , которые указывают на то, что проблема в реестре Windows, но я не уверен, как решить эту проблему. В этой версии Windows 7 происходит сбой (иногда). Спасибо!

1 Ответ

2 голосов
/ 14 июля 2011

c0000005 - нарушение доступа, а 00024651 - смещение в MSVCR90.dll. Вы получаете смещение, а не абсолютный адрес, потому что вы не знаете и не заботитесь, где DLL была загружена в память. PDB для MSVCR90.dll скажет вам, что это за функция.

Вы можете просто отладить свою программу на компьютере с XP. Проверьте, есть ли у него та же DLL и где она загружена. (окно отладки в VS). Затем добавьте смещение (это шестнадцатеричное) и проверьте адрес памяти при разборке. Предполагая, что PDB для MSVCR90.dll загружен, VS скажет вам, какая функция находится по этому адресу. Возможно, вам придется немного прокрутить.

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