Проблемы с использованием QScriptEngine: необходимо создать приложение Q (Core) перед QScriptEngine - PullRequest
0 голосов
/ 02 октября 2018

У меня есть приложение Qt Gui, использующее виджет mainwindow.Класс окна выглядит так:

class MainWindow : public QMainWindow
{
  Q_OBJECT
  ...
  public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
  //some more code
  private:
    class2* m_data;
}

В классе 2 я хочу использовать qscriptengine.Вкратце это выглядит так:

class2.h:

 class class2: public QObject
 {
  Q_OBJECT
  public:
   class2(QObject* parent = nullptr);
 ...
 private:
 QScriptEngine* m_engine;
 }

class2.cpp:

 class2::class2(QObject* parent)
 :QObject(parent)       
{
 m_engine = new QScriptEngine(this); //this line fails!!
 //some other code
}

Также есть файл main.cpp, который выглядит обычно:

int main(int argc, char *argv[])
{
 QApplication a(argc, argv);
 MainWindow w;
 w.show();
 return a.exec();
}

При инициализации приложения ядра qscript происходит сбой.Отладчик привел меня к qscriptengine.cpp, ошибка qFatal («QScriptEngine: необходимо создать приложение Q (Core) перед QScriptEngine»);Это также показывает необработанное исключение в ucrtbase.dll.Удивительно, но он работает в конфигурации выпуска (но где-то не работает) и не запускается при запуске в конфигурации отладкиДумал, что это может быть актуально.Что я делаю не так и как я могу это исправить?У меня были проблемы с включением библиотеки qtscript в проект, но мне кажется, что я их решил.Я добавил библиотеку в проект с помощью комментария #pragma и в свойствах проекта.Должен ли я скопировать файлы .lib и .dll или что-то в этом роде? ..

...