我正在使用 QScintilla 2.8。
我已经正确构建了 qscintilla2.dll。
我把它放在我的 c:\Qt\Qt5.2.1\mingw48_32\bin 文件夹中
我的路径是 Qt 设置的设置:
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib;
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin;
C:\Qt\Qt5.2.1\Tools\mingw48_32\bin;
在我的项目中,我将以下内容放入我的 .pro 文件中:LIBS += -lqscintilla2
在我的代码中:
#include <Qsci/qsciscintilla.h>
#include <Qsci/qscilexerhtml.h>
#include <Qsci/qscilexerjavascript.h>
#include <Qsci/qscilexerxml.h>
#include <Qsci/qscilexercss.h>
#include <Qsci/qscilexersql.h>
#include <Qsci/qscilexeryaml.h>
...
QsciScintilla *editor = new QsciScintilla();
该程序编译良好。但是当我运行程序时,它会在我跨步时崩溃:
QsciScintilla *editor = new QsciScintilla();
我看到的错误是在应用程序输出中: QWidget: Must construction a QApplication before a QWidget Invalid parameter passing to C runtime function。
我还收到一个消息框,上面写着:Microsoft Visual C++ 运行时库此应用程序已请求运行时以不寻常的方式终止它。
请联系应用程序的支持团队以获取更多信息。
2014 年 4 月 2 日更新 - 晚上 11:17 我移动了代码只是为了看看它如果我在应用程序首次加载后立即初始化它会有所不同
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
..
}
所以在主窗口中:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
...
QsciScintilla *editor = new QsciScintilla();
setCentralWidget(editor);
...
}
但它仍然因同样的问题而失败
2014 年 4 月 3 日更新 - 晚上 8:32 好的,我想我明白了。当我将项目构建为发布时,一切正常。当我将我的项目构建为调试时,它失败了。所以也许我需要构建一个 QScintilla 的调试版本
有任何想法吗。我用谷歌搜索但没有任何结果。
谢谢