近日,我在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模式下生成,再运行,问题解决。