Qt GUI已停止工作

时间:2011-07-14 00:38:00

标签: c++ qt opencv

我正在开发一个Windows应用程序,使用Windows XP机器进行开发。该应用程序在Windows XP上运行正常,没有任何内存泄漏。但是,在 Windows 7 Home Premium 计算机上运行会给我一个问题,但有时只会出现问题。

我正在开发一个使用OpenCV和OpenGL的Qt应用程序,经过一段时间从网络摄像头播放视频后,它只在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

我已阅读other questions,表明问题出在Windows注册表中,但我不确定如何解决此问题。它只是在这个版本的Windows 7中崩溃(有时)。谢谢!

1 个答案:

答案 0 :(得分:2)

c0000005是访问冲突,00024651是MSVCR90.dll中的偏移量。你得到一个偏移量,而不是一个绝对地址,因为你不知道并且不关心DLL在内存中的加载位置。 MSVCR90.dll的PDB将告诉您这是什么功能。

您可以在XP计算机上调试程序。检查它是否具有相同的DLL,以及它的加载位置。 (VS中的调试窗口)。然后添加偏移量(它是十六进制),并检查反汇编中的内存地址。假设加载了MSVCR90.dll的PDB,VS将告诉您该地址的功能。您可能需要向上滚动一点。