“此应用程序已请求运行时以不寻常的方式终止它。”

时间:2011-03-26 13:23:36

标签: c++ qt

我的Qt程序(g ++ 4.4.0)给了我Microsoft Visual C ++运行时库错误“当我关闭它时,此应用程序已请求运行时以不寻常的方式终止它”。但是当我在调试器中运行它时,我没有收到错误消息。有人知道如何获得有关崩溃的一些信息吗?消息框只有一个确定按钮。

编辑添加:按照Wimmel的建议,我附加了调试器。有两个线程处于活动状态,ThreadID为1和3.堆栈如下所示:

Level Function              File                           Line Address
0     VTagOutput            C:\Windows\syswow64\user32.dll 0    0x7529438d  
1     VTagOutput            C:\Windows\syswow64\user32.dll 0    0x7529438d  
2     USER32!EmptyClipboard C:\Windows\syswow64\user32.dll 0    0x752a2674  
3     ??                                                   0

Level Function                                    File                          Line Address
0     ntdll!LdrFindResource_U                     C:\Windows\SysWOW64\ntdll.dll 0   0x76f5000d  
1     ntdll!LdrSetAppCompatDllRedirectionCallback C:\Windows\SysWOW64\ntdll.dll 0   0x76fdfabe  
2     ??                                                                        0    0x7b9609b5 
3     ??                                                                        0

也许第二个线程正在显示错误消息?第一个有点奇怪:前两行是相同的。我的代码中没有任何名称中包含TagOutput的内容,而且就我所知,Qt也没有。

2 个答案:

答案 0 :(得分:3)

我唯一一次看到Qt的错误消息是我第一次尝试设置Qt开发环境并安装了许多不同版本的MinGW。似乎我的可执行文件正在查找并加载一个与其他所有内容不一致的mingwm10.dll版本。我追捕并删除了那个dll的所有版本,除了我想要的版本,问题就消失了。

答案 1 :(得分:0)

使用procmon.exe并过滤进程名称和文件访问权限以查找缺少的依赖项。

我和Qt 5.0.1有同样的问题。
该计划遗漏了Qt框架中的一些dll 我在目录中找到了它们:

<QTINSTALLDIR>\Qt5.0.1\5.0.1\mingw47_32\plugins