"Unhandled exception in app.exe (QtGuid4.dll): 0xC0000005: Access Violation"错误解决

本文要解决的Qt调试问题截图如下:

起因:在代码中添加类型为QColor的二维数组,存储图片每个像素。

现象:调试时出现上图所示错误。

原因:经过百度以及反复查看代码,发现在代码中,有数组越界的情况。因为定义的时候,数组的两个维度大小不一样,而在实

现 QWidget的重画事件时,因为坐标系的差别,使得两个维度的顺序对换,使得发生数组越界的情况。

详细解释:在程序中我定义的数组是QColor color [ Height ] [ Width ], 我的本意是Height代表图片的高度,Height的初值为400;Width

代表图片的高度,Width的初值为600。

然而在Qt的paintEvent事件中,QPainter中的 drawPoint( int x,int y )函数中,x表示的是图片的横坐标,对应数组的Width;

y表示图片的纵坐标,对应数组的Height。

由于在刚开始没有意识到坐标系与数组维度的对应关系,使得对应错误,导致越界。

如有疑问,请留言!如有问题,求指正!

时间: 2024-07-30 06:36:49

"Unhandled exception in app.exe (QtGuid4.dll): 0xC0000005: Access Violation"错误解决的相关文章

Win10下装 VC6.0单步调试报((OLE32.DLL): 0xC0000005: Access Violation)

想在win10上重温下经典VC++6.0,结果单步调试时弹出个异常对话框,报((OLE32.DLL): 0xC0000005: Access Violation) 解决方法如下: 1.菜单 工具->选项 中的调试,反汇编下的来源注解取消 2.点确定保存设置,然后即可单步调试3.再将工具->选项 中的调试,反汇编下的来源注解勾上 原文地址:https://www.cnblogs.com/yilang/p/12530750.html

Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:Access violation reading location 0x......

Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:Access violation reading location 0x...... 对于C++初学者或粗心者,很容易犯如下图所示错误: 那么该错误是由什么造成的呢? 答案无疑只有一个,即:读取了本该没有的值或者地址. 那么如何解决呢? 第一件事,检查下你传入的参数是否合法: 第二件事,若malloc了一块内存,必须记得free: 第三件事,你是否赋值了已经溢出的值或地址. 举例说

Solve Error: Unhandled exception at 0x00905a4d in xxx.exe: 0xC0000005: Access violation.

在使用Visual Studio进行项目开发的时候,有时候会遇到下面这个错误: Unhandled exception at 0x00905a4d in xxx.exe: 0xC0000005: Access violation 产生这个错误的原因可能是在Visual Studio中链接了后缀为"*.a"的库文件,这种库文件应该是在Linux系统或者是使用MinGW编译时链接的,用VS的话应该链接"*.lib"的库文件,而下载的第三方库中一般会包含"*.d

First-chance exception at 0x782260ec in xxx.exe: 0xC0000005: Access violation

开发的软件可以通过按钮创建子窗体,在win7下测试正常,在winXP下崩溃.于是搜到以下帖子,没有讲到直接解决方法,因为貌似没有直接解决的方式. 通过里边的设置可以捕获异常,然后再分析代码. 原帖地址 'First-chance exception' usually means an exception that has been handled by user code. If you're using the Vosual Studio & the Windows Mobile emulat

"flash download failed - Target dll has been cancelled"错误解决办法

在用mdk通过stlink烧写官方例程到stm32f429I discovery时,烧写了十来个程序都没问题,突然在烧写一个程序时, 弹出了"flash download failed - Target dll has been cancelled",然后后续的烧写都失败了. 原因可能是其中一个程序将stm32开发板设置成了休眠模式,导致后续的烧写都失败了. 从keil论坛帖子中 看到可以通过st-link utility来将flash全部擦除就能烧写了. 从http://www.st

VC++ 0xC0000005: Access violation.

public: COptionDlg(CWnd* pParent = NULL); // 标准构造函数 virtual ~COptionDlg(); TCONFIG m_tCfg; // 对话框数据 enum { IDD = IDD_OPTIONDLG }; 上面的做法会发生报错,感觉是MFC的Bug. 正确做法:将结构体定义在外面,问题解决! public: TCONFIG m_tCfg; public: COptionDlg(CWnd* pParent = NULL); // 标准构造函数

0xC0000005;Access Violation(栈区空间很宝贵, linux上栈区空间默认为8M,vc6下默认栈空间大小为1M)

写C/C++程序最怕出现这样的提示了,还好是在调试环境下显示出来的,在非调试状态就直接崩溃退出. 从上述汇编代码发现在取内存地址 eax+38h 的值时出错, 那说明这个地址非法呗, 不能访问, 一般是访问了空指针引起的. 直接调用QList::append()方法也会出错了, 此时汇编也指向的是在读取内存 ebp-8 时出错. 这段代码运行背景是在栈上申请了很多缓冲区,然后缓冲区在不停添加内容, 直到某一阶段程序崩溃. 由于栈区空间很宝贵, linux上栈区空间默认为8M,vc6下默认栈空间大

unity, Unhandled Exception: System.UnauthorizedAccessException: Access to the path "xxx\Temp\Assembly-CSharp-Editor.dll.mdb" is denied.

Unhandled Exception: System.UnauthorizedAccessException: Access to the path "xxx\Temp\Assembly-CSharp-Editor.dll.mdb" is denied. 在windows上用unity出现上面错误,解法是关掉unity和monodeveloper,然后以管理员身份重新打开unity.

Unhandled Exception:System.DllNotFoundException: Unable to load DLL"**"

在项目中使用C#代码调用C++ DLL时.常常会出现这个问题:在开发者自己的电脑上运行没有问题,但是部署到客户电脑上时会出现下面问题: Unhandled Exception:System.DllNotFoundException: Unable to load DLL"**":找不到指定的模块. 出现这个问题的原因:一般是该客户电脑上缺少该DLL的依赖项.一般来说比较常见的缺少项是msvcr1200.dll msvcp1200.dll.具体缺少什么,需要使用Dependency Wa