Я использую 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: необходимо построить QApplication до того, как неверный параметр QWidget будет передан функции времени выполнения C.
Также я получаю окно сообщения, в котором говорится: Библиотека времени выполнения Microsoft Visual C++ Это приложение запросило у среды выполнения необычное завершение его работы.
Пожалуйста, свяжитесь со службой поддержки приложения для получения дополнительной информации.
Обновление от 02.04.2014 – 23: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);
...
}
но он по-прежнему терпит неудачу с теми же проблемами
Обновление от 03.04.2014 – 20:32 Хорошо, кажется, я разобрался. Когда я создаю свой проект как релиз, все работает нормально. Когда я использую сборку своего проекта в качестве отладки, он терпит неудачу. Так что, возможно, мне нужно создать отладочную версию QScintilla.
Любые идеи. Я гуглил, но ничего не нашел.
Спасибо.