"Program has stopped working"但它工作正常

"Program has stopped working" but it works normally

本文关键字:工作 working Program has stopped      更新时间:2023-10-16

我有一个非常奇怪的问题。最初的程序运行良好,但现在程序的一个小更新对单个用户来说是崩溃的,但对其他人来说它运行正常。

基本上,只要他启动程序,他就会收到窗口错误消息"程序X已停止工作"和转储:

问题事件名称:APPCRASH
应用程序名称:programname.exe
应用程序版本:0.0.0.1
应用程序时间戳:535ceb8c
故障模块名称:programname.exe
故障模块版本:0.0.0.1
故障模块时间戳:535ceb8c
异常代码:c000001d
异常偏移:004a5542
操作系统版本:6.1.760.1.2.1.0.768.3
区域设置ID:2057
附加信息1:ac38
附加信息2:ac387466df76c7f98f034212b24686d7
附加信息3:23ca
附加信息4:23cafe810bbb46d87a7f0938a06eb3ea

一旦他关闭错误对话框,程序就会正常启动,并且不会出现任何问题。没有其他人有这个问题,所以我怀疑它可能也与操作系统/设置有关。

这个程序实际上(在启动时)什么都不做——它只是一个简单的UI。所以它甚至在我的实际代码出现之前就崩溃了。

构建方式:-问题5.1.0-msvc 2010-来宾操作系统是Windows 7

可能执行的代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.setWindowIcon(QIcon(":/favicon.ico"));
    w.setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
    w.show();
    return a.exec();
}

主窗口构造函数:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tabWidget->setCurrentIndex(0);
    isStartupUpdate=true;
    ismax=false;
}

关于如何处理和调试这个问题,有什么指导方针吗?

我刚刚在c#上遇到了同样的事情

我添加了Debugger.Break();,它显示应用程序停止工作。据我所知,这不应该发生。

我换了

#if DEBUG 
Debugger.Break();
#endif

要解决此问题&现在工作