本文主要是介绍Qt程序调试“QWidget : Must construct a Qapplication before a QwidgetBUG分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
近日,我在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模式下生成,再运行,问题解决。
这篇关于Qt程序调试“QWidget : Must construct a Qapplication before a QwidgetBUG分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!