我正在开发一个Windows应用程序,使用Windows XP机器进行开发。该应用程序在Windows XP上正常运行,没有任何内存泄漏。不过,在Windows 7家庭高级版机器上运行会给我一个问题,但只是偶尔。
我正在开发一个使用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注册表,但我不知道如何解决这个问题。在这个版本的Windows 7中,它只是崩溃(有时)。谢谢!
c0000005
为Access Violation, 00024651
为MSVCR90.dll中的偏移。你得到的是一个偏移量,而不是一个绝对地址,因为你不知道也不关心DLL在内存中的加载位置。MSVCR90.dll的PDB将告诉您该函数是什么。
你可以在XP机器上调试你的程序。检查它是否有相同的DLL,以及加载的位置。(VS中的调试窗口)。然后添加偏移量(它是十六进制),并检查拆卸中的内存地址。假设加载了MSVCR90.dll的PDB, VS将告诉您位于该地址的函数。你可能需要向上滚动一点