我正在使用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();
我看到的错误是在Application输出中: QWidget:必须在QWidget之前构造QApplication 传递给C运行时函数的参数无效。
我还得到一个消息框,上面写着: Microsoft Visual C ++运行时库 此应用程序已请求运行时以不寻常的方式终止它 请联系应用程序的支持团队以获取更多信息。
2014年4月2日上午11:17 我移动代码只是为了看到它如果我在应用程序第一次加载后立即初始化它会产生影响
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
..
}
所以在MainWindow:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
...
QsciScintilla *editor = new QsciScintilla();
setCentralWidget(editor);
...
}
但它仍然以相同的问题失败
2014年4月3日更新 - 晚上8:32 好吧,我想我明白了。当我将项目构建为Release时,一切正常。它当我使用构建我的项目作为调试它失败。所以我可能需要构建一个QScintilla的调试版本
任何想法。我用谷歌搜索但没有出现。
感谢
答案 0 :(得分:0)
2014年4月3日更新 - 晚上8:32 我的解决方案是构建一个库的调试版本,一切都很好。我使用了以下步骤:
qmake qscintilla.pro
mingw32-make -f Makefile.Debug
mingw32-make -f Makefile.Debug install
注意:确保将qscintilla2.dll复制到所有库所在的bin目录中。就我而言:
From:
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib
To:
C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin