Welcome, Guest. Please login or register.
Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - tech 49

Pages: [1]
1
Здравствуйте можно ли в библиотеки реализовать такой метод bool loadFromDom(const QDomDocument & document); в классе ReportEngine, для предобработки отчёта

lrreportengine.h

Code: [Select]
#include <QDomComment>

class LIMEREPORT_EXPORT ReportEngine : public QObject{
...
public:
bool    loadFromDom(const QDomDocument & document);
...
}


lrreportengine_p.h

Code: [Select]
class ReportEnginePrivate : public QObject,
        public ICollectionContainer,
        public ITranslationContainer,
        public IExternalPainter,
        public ReportEnginePrivateInterface
{
...
public:
bool    loadFromDom(const QDomDocument & document, const QString & name = "");
...
}

lrreportengine.cpp

Code: [Select]

bool ReportEnginePrivate::loadFromDom(const QDomDocument &document, const QString &name){
    clearReport();

    ItemsReaderIntf::Ptr reader = DomXMLReader::create(document);
    reader->setPassPhrase(m_passPhrase);
    if (reader->first()){
        if (reader->readItem(this)){
            m_fileName = "";
            m_reportName = name;
            emit loadFinished();
            return true;
        };
    }
    return false;
}

bool ReportEngine::loadFromDom(const QDomDocument & document)
{
    Q_D(ReportEngine);
    return d->loadFromDom(document);
}


lrxmlreader.h

Code: [Select]

class DomXMLReader : public XMLReader{
public:
    static ItemsReaderIntf::Ptr create(const QDomDocument & content){ return ItemsReaderIntf::Ptr(new DomXMLReader(content));}
protected:
    virtual bool prepareReader(QDomDocument *doc);
private:
    DomXMLReader(const QDomDocument & content): m_content(content){}
    const QDomDocument & m_content;
};


lrxmlreader.cpp

Code: [Select]

bool DomXMLReader::prepareReader(QDomDocument * doc)
{
    if (!m_content.isNull()){
        * doc = m_content;
    } else {m_error = QString(QObject::tr("Document is empty")); return false;}
    return true;
}


2
Нет, в этом весь смысл что статическая библиотека QtZint, а если dll, то она подхватывает те же библиотеки Qt :) 

3
Сборка библиотек получается но видно что в библиотеке libQtZint.a проблема, cначала собирал QtZint, потом только удалось библиотеку LimeReport

Проблема при сборки приложения, первоначально проверяю на designer.pro

lrreportengine.cpp:-1: ошибка: undefined reference to `initResources()'
lrbarcodeitem.cpp:-1: ошибка: undefined reference to `_imp___ZN4Zint5QZintC1Ev'
lrbarcodeitem.cpp:-1: ошибка: undefined reference to `_imp___ZN4Zint5QZintD1Ev'
lrbarcodeitem.cpp:-1: ошибка: undefined reference to `_imp___ZN4Zint5QZintD1Ev'
lrbarcodeitem.cpp:-1: ошибка: undefined reference to `_imp___ZN4Zint5QZintC1Ev'
lrbarcodeitem.cpp:-1: ошибка: undefined reference to `_imp___ZN4Zint5QZint7setTextERK7QString'
и так далее

В любом другом *.pro использую строки:

LIBS += "-LC:/Qt/5.9_static/libLimeReport" -llimereport -lQtZint
INCLUDEPATH += "C:/Qt/5.9_static/libLimeReport/include"


Происходит тоже самое

4
Версия LimeReport 1.4.16

При статической сборки дизайнера и любого другого приложения просит файл lrreportengine.cpp

lrreportengine.cpp:-1: ошибка: undefined reference to `LimeReport::initReportItems()
lrreportengine.cpp:-1: ошибка: undefined reference to `LimeReport::initObjectInspectorProperties()
lrreportengine.cpp:-1: ошибка: undefined reference to `LimeReport::initSerializators()


5
Да собрать возможно, если программа не будет использоваться, как коммерческий закрытый продукт для продажи и так далее.
Делал так в *.pro файле: CONFIG += staticlib
Все собирается но толком не работает.

6
Возможно, если приложение идет как коммерческий продукт. Здесь скорей вопрос с технической стороны. :)

7
Возможно ли собрать статическую библиотеку правильно и что для этого нужно. Кто нибудь пробовал?

Pages: [1]