【发布时间】:2014-10-08 09:09:02
【问题描述】:
我在 Visual Studio 2013 中使用 Qt 创建了一个项目。我通过插件将Qt添加到VS2013中,并开始在Qt Creator中设计一个主窗口。
我的代码如下所示: 主.cpp:
#include "test2.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
test2 w;
w.show();
return a.exec();
}
test2.h:
#ifndef TEST2_H
#define TEST2_H
#include <QtWidgets/QMainWindow>
#include "ui_test2.h"
class test2 : public QMainWindow
{
Q_OBJECT
public:
test2(QWidget *parent = 0);
~test2();
private:
Ui::test2Class ui;
};
#endif // TEST2_H
test2.cpp:
#include "test2.h"
test2::test2(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
test2::~test2()
{
}
在此之后,我构建了解决方案并将其移至虚拟机。
Visual Studio : 64 位发行版
Qt:适用于 64 位 Windows 的 Qt 5.3.2(VS 2013,OpenGL,573 MB)
虚拟机:64 位。
在虚拟机上安装了 Visual C++ Redistributable für Visual Studio 2013。
VmWarePlayer 用于虚拟机。
在另一台普通的 64 位计算机上一切正常。
问题签名:
问题事件名称:APPCRASH
应用程序名称:test2.exe
应用程序版本:0.0.0.0
应用程序时间戳:5434e66b
故障模块名称:MSVCR120.dll
故障模块版本:12.0.21005.1
故障模块时间戳:524f83ff
异常代码:c000001d
异常偏移量:0000000000095c01
操作系统版本:6.1.7600.2.0.0.256.48
区域 ID:1031
附加信息1:6abf
附加信息2:6abf78853a12e8504a5f26d8c231927b
附加信息 3:1f6d
附加信息 4:1f6d0c3c3ab43abf0b4e81f905afc8ea
我的目录如下所示:
【问题讨论】:
-
为什么不在visual studio调试器下运行它,看看它在哪里崩溃?很可能您没有在某处检查错误代码或返回值,并且尽管出现错误仍在继续。
-
-
一台 VM 的设置与其他 VM 略有不同。所以某处发生了故障,您的代码(甚至可能是 Qt)无法正确处理它,从而导致崩溃。这也是一种可能的情况。所以是的,问题的来源在VM本身,但它表现出来是因为代码有错误,只是错误在“正常运行”的系统上被掩盖了。说真的,在调试器下运行它,看看它在哪里崩溃。那应该是你的第一步。总是。我对提问者甚至没有使用调试器的“它崩溃”的问题投了反对票。他们表现出零努力。
-
我在自己的电脑上尝试了 3 个不同的 vm,还运行了调试器,没有任何帮助,程序甚至没有启动,它什么也没做
-
嗯,你有源代码吗?你是从源代码编译的吗?它会在调试版本、发布版本或两者中崩溃吗?如果您声称调试器甚至无法在 Visual Studio 下启动程序,那么您的 VM 或运行它的硬件存在问题。运行 memtest86 一天,然后运行 prime95 一天,确保没有错误。