Qt程序调试“QWidget : Must construct a Qapplication before a Qwidget"BUG分析

        近日,我在Debug Qt程序时,遇到了如下的运行时错误。经过几番分析,终于解决,现记录下来,并分享给大家。



一、调试环境

1,开发工具

VS2013+QT5.4插件

2,程序结构

Qt EXE调用QT DLL

3,问题描述

使用F5启动Qt程序,在运行EXE部分时,运行正常,显示EXE中的GUI界面,跳转到DLL时,出现上述错误。


二、问题跟踪

        根据问题的现象,初步怀疑问题出在DLL程序中,故一开始在DLL 的入口处设置断点。

1,程序能够运行到DLL的入口函数,执行前几句代码没问题;

2,执行到“createMainWindow”时,又出现上述错误。

3, 分析错误提示,貌似“在createMainWindow之前没有创建QApplication对象”。

4,查看EXE的代码,发现它已创建QApplication对象,然后在跳转到DLL。故应该不是错误提示中的问题。

5,查看编译选项,发现EXE是在Release模式下编译生成的。

6,试着将EXE换到Debug模式下生成,再运行,问题解决。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值