Qt GUI已停止工作 [英] Qt GUI has stopped working

查看:1051
本文介绍了Qt GUI已停止工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个Windows应用程序,使用Windows XP机器进行开发。应用程序在Windows XP上正常运行,没有任何内存泄漏。

I am developing an application for Windows, using a Windows XP machine for development. The application runs normal on Windows XP, does not have any memory leak. Running on a Windows 7 Home Premium machine, though, gives me a problem, but only sometimes.

我正在开发一个Qt应用程序,它使用OpenCV和OpenGL,它只在W7中崩溃一段时间从网络摄像头播放视频。错误如下:

I am developing a Qt application that uses OpenCV and OpenGL, and it crashes only in W7 after some time playing a video from a webcam. The error is the following:

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


$ b b

我已阅读过其他问题,建议问题出现在Windows注册表中,但我不知道如何解决这个问题。非常感谢!

I have read other questions that suggest the problem is on the Windows registry, but I am not sure how to solve this problem. It just crashes (sometimes) in this version of Windows 7. Thanks!

推荐答案

c0000005 是访问冲突, 00024651 是MSVCR90.dll中的一个偏移量。你得到一个偏移量,而不是一个绝对地址,因为你不知道和不在乎DLL在内存中被加载。 MSVCR90.dll的PDB会告诉你什么函数。

c0000005 is an Access Violation, and 00024651 is an offset in MSVCR90.dll. You get an offset, and not an absolute address, because you don't know and don't care where the DLL was loaded in memory. The PDB for MSVCR90.dll will tell you what function that is.

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

You can just debug your program on the XP machine. Check it has the same DLL, and where it's loaded. (debug window in VS). Then add the offset (it's hex), and check the memory address in the disassembly. Assuming the PDB for MSVCR90.dll is loaded, VS will tell you what function is located at that address. You might need to scroll up a bit.

这篇关于Qt GUI已停止工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆