c++ - 使用QScriptEngine的问题:必须在QScriptEngine之前构造一个Q(Core)Application

标签 c++ qt visual-studio-2017 qtscript qt5.11

我有一个使用mainwindow小部件的Qt Gui应用程序。窗口类如下所示:

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

在class2中,我想使用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:必须在QScriptEngine之前构造一个Q(Core)Application”);。它还在ucrtbase.dll中显示了未处理的异常。
令人惊讶的是,它可以在发行版配置中运行(但在某处失败),并且在调试配置中启动时失败。认为这可能是相关的。
我在做什么错,我该如何解决?
我确实在将qtscript库包含到项目中时遇到了问题,但是在我看来,我已经解决了它们。我通过#pragma注释和项目属性将库添加到项目中。我应该复制其.lib和.dll文件还是类似的文件?

最佳答案

通过重新安装Qt并在项目中包含其他依赖项中的库(而不是通过注解注释)可以解决问题。

关于c++ - 使用QScriptEngine的问题:必须在QScriptEngine之前构造一个Q(Core)Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52600064/

相关文章:

c++ - 如何使用QString toUtf8和fromUtf8?

c++ - QStateMachine如何在不同的QState中显示和隐藏QGraphicsView和QObject

c# - visual studio 2017 发布 asp.net core

c# - 从服务发送通知

.net - 使用 Visual Studio 2017 的 Azure Function 项目的 NuGet 包还原失败

c++ - Qt继承和类构造函数混淆

c++ - 创建一个根据内容调整大小的 QDockWidget

c++ - 使用 Visual Studio C++ 按名称搜索目录中的文件

c++ - 使用 C++ 的 VSPackage 开发,如何在启动 visual studio 时初始化我的包

c++ - 时间选择器控件的 DTM_SETFORMAT 不支持格式说明符