C++ Qt GUI已停止工作

C++ Qt GUI已停止工作,c++,qt,opencv,C++,Qt,Opencv,我正在为Windows开发一个应用程序,使用Windows XP机器进行开发。该应用程序在Windows XP上正常运行,没有任何内存泄漏。不过,在Windows7家用高级计算机上运行会给我带来一个问题,但这只是偶尔出现的问题 我正在开发一个使用OpenCV和OpenGL的Qt应用程序,它只有在W7中播放一段时间的网络摄像头视频后才会崩溃。错误如下: Problem signature: Problem Event Name: APPCRASH Application Name: QtRIC

我正在为Windows开发一个应用程序,使用Windows XP机器进行开发。该应用程序在Windows XP上正常运行,没有任何内存泄漏。不过,在Windows7家用高级计算机上运行会给我带来一个问题,但这只是偶尔出现的问题

我正在开发一个使用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

我读过一篇文章,说问题出在Windows注册表上,但我不知道如何解决这个问题。它只是在这个版本的Windows7中崩溃(有时)。谢谢

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


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

相当粗体的声明,您的应用程序没有内存leaks@hexa,也许,至少我检查了我的代码部分,没有发现任何内存泄漏。在XP中,它也会在某个时候崩溃,或者增加使用的内存,但这不会发生。无论如何,谢谢。上次我在Qt应用程序中使用OpenGL时,我在追踪纹理内存泄漏方面玩得很开心,结果是发生了这种情况,因为当我释放不再需要的纹理时,我没有处于正确的GL上下文中,因此无纹理调用没有删除我认为是的纹理。不知道这是否与你的问题有关,但我想我应该提一下。谢谢杰里米。一开始,我也遇到了一些内存泄漏和OpenGL的问题(同样的事情,上下文的问题),但程序的内存使用始终保持不变,它对XP运行良好。我猜(可能是我错了,如果是的话请纠正我)如果程序有内存泄漏,它会增加两个操作系统的内存。@Frank,它在我用于开发的计算机(XP)中运行良好,因此我不确定如何进行回溯。很抱歉,回复太晚,糟糕的一周。我在XP机器上调试了程序;问题是试图写入00000000的访问冲突。在任何情况下,调用的函数都不会告诉我任何事情,我也不确定如何将问题回溯到根函数。我也在Windows7机器上调试了这个程序,但是。。。在这种情况下,它也不会崩溃。仍然不确定出了什么问题。PS:它只是在某些情况下在W7机器上有时会崩溃。