Я создал проект в Visual Studio 2013 с Qt. Я добавил Qt к VS2013 с надстройкой и начал разрабатывать mainwindow в Qt Creator.Qt-код c000001d в виртуальной машине
Мой код выглядит следующим образом: main.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 бит Release Version
Qt: Qt 5.3.2 для Windows 64-бит (VS 2013, OpenGL, 573 MB)
Виртуальная машина: 64 бит.
Установил Visual C++ Redistributable для Visual Studio 2013 на виртуальной машине.
VmWarePlayer используется для виртуальной машины.
На другом обычном 64-битном компьютере все работает нормально.
Problem signature:
Problem Event Name: APPCRASH
Application Name: test2.exe
Application Version: 0.0.0.0
Application Timestamp: 5434e66b
Fault Module Name: MSVCR120.dll
Fault Module Version: 12.0.21005.1
Fault Module Timestamp: 524f83ff
Exception Code: c000001d
Exception Offset: 0000000000095c01
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1031
Additional Information 1: 6abf
Additional Information 2: 6abf78853a12e8504a5f26d8c231927b
Additional Information 3: 1f6d
Additional Information 4: 1f6d0c3c3ab43abf0b4e81f905afc8ea
Мой каталог выглядит следующим образом:
Почему вы не запускаете его под отладчиком визуальной студии и не видите, где он падает? Скорее всего, вы не проверяете код ошибки или возвращаемое значение где-то и продолжаете, несмотря на ошибки. –
Поскольку он работает на любом другом компьютере с 64-разрядной версией Windows 7 и даже с Windows 8, как в не виртуальных машинах, так и в виртуальных машинах, я думаю, что проблема не в коде, а где-то в другом месте. – orbatschow
Эта виртуальная машина настроена несколько иначе, чем другие виртуальные машины. Так что что-то где-то не удается, и ваш код (или, может быть, даже Qt) не обрабатывает его должным образом и, следовательно, сбой. Это вероятный сценарий.Итак, да, источник * проблемы находится в самой виртуальной машине, но это проявляется, потому что код глючит, только ошибка маскируется системами, которые «действуют нормально». Серьезно, запустите его под отладчиком и посмотрите, где он сбой. Это должен быть ваш первый шаг. Всегда. Я стараюсь «опрокидывать» вопросы, когда аскер даже не потрудился использовать отладчик. Они показывают нулевое усилие. –