2014-10-08 4 views
0

Я создал проект в 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

Мой каталог выглядит следующим образом:

Directory

+0

Почему вы не запускаете его под отладчиком визуальной студии и не видите, где он падает? Скорее всего, вы не проверяете код ошибки или возвращаемое значение где-то и продолжаете, несмотря на ошибки. –

+0

Поскольку он работает на любом другом компьютере с 64-разрядной версией Windows 7 и даже с Windows 8, как в не виртуальных машинах, так и в виртуальных машинах, я думаю, что проблема не в коде, а где-то в другом месте. – orbatschow

+0

Эта виртуальная машина настроена несколько иначе, чем другие виртуальные машины. Так что что-то где-то не удается, и ваш код (или, может быть, даже Qt) не обрабатывает его должным образом и, следовательно, сбой. Это вероятный сценарий.Итак, да, источник * проблемы находится в самой виртуальной машине, но это проявляется, потому что код глючит, только ошибка маскируется системами, которые «действуют нормально». Серьезно, запустите его под отладчиком и посмотрите, где он сбой. Это должен быть ваш первый шаг. Всегда. Я стараюсь «опрокидывать» вопросы, когда аскер даже не потрудился использовать отладчик. Они показывают нулевое усилие. –

ответ

0

Here он говорит:

The Exception Code: C000001d error may be caused by windows system files damage. The corrupted system files entries can be a real threat to the well being of your computer. How to easily fix Exception Code: C000001d error?

There are two (2) ways to fix Exception Code: C000001d Error:

Advanced Computer User Solution (manual update):

1) Start your computer and log on as an administrator.

2) Click the Start button then select All Programs, Accessories, System Tools, and then click System Restore.

3) In the new window, select "Restore my computer to an earlier time" option and then click Next.

4) Select the most recent system restore point from the "On this list, click a restore point" list, and then click Next.

5) Click Next on the confirmation window.

6) Restarts the computer when the restoration is finished.

Novice Computer User Solution (completely automated):

1) Download (Exception Code: C000001d) repair utility.

2) Install program and click Scan button.

3) Click the Fix Errors button when scan is completed.

4) Restart your computer.

Вы пробовали какой-либо из них?

+0

. Я нашел этот сайт раньше, ничего из этого не помогло. – orbatschow

+2

Это не ответ, это сборник некоторых плохих советов. В любом случае ** не устанавливайте ** утилиты восстановления кода исключения. – 23W

0

Возможно, я нашел ответ для своей проблемы, для меня это помогло установить все обновления для виртуальной машины, после чего моя программа работала без каких-либо проблем.

0

Некоторые виртуальные машины имеют неправильную расширенную поддержку инструкций. Например: встроенная сборка C++ в MSVC++ 2012/2013 x64 toolset с Расширенные векторные расширения (/ arch: AVX) будет CRASHED на VirtualBox с исключением C000001d (код недействительной команды).

Вы должны установить свойство проекта Включить Enhanced набором команд к «Не указан». Только такая конфигурация проекта x64 будет работать на всех виртуальных машинах.

Смежные вопросы