May 21, 2019, 7:38 p.m.

Создание DLL в Qt5 с использованием нескольких Header-файлов

Всем доброго времени суток.

Прошу помощи у сообщества, как начинающий программист. Есть задача реализовать динамическую библиотеку на Qt5.12.3. Поискав на просторах Интернета нашел немало Tutorils, которые показывают как это делать. Попробовал сам, получилось. И, воодушевленный своим успехом сел писать код. Код вроде бы написан и даже скомпелирован. Получена библиотека. НО! Она несовсем правильно работает. Связано это с тем, что у меня несколько классов, а доступ есть только к самому первому получается. Как решить задачу с несколькими классами я так и не нашел... Помогите пожалуйста советом.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
2

Добрый день!

Вот пример создания динамической библиотеки в Qt .

Да, там показан один класс, но абсолютно ничего не меняется, сколько бы классов вы там не имели.

Важным моментом является то, что в каждом заголовочном файлы вам необходимо подключить заголовочный файл global и перед классом написать макрос экспорта. Как это написано здесь

#ifndef QUILIB_H
#define QUILIB_H

#include "quilib_global.h"

#include <QDialog>

class QUILIBSHARED_EXPORT QuiLib : public QDialog
{

public:
    explicit QuiLib(QWidget* parent = nullptr);
};

#endif // QUILIB_H

То есть в том конкретном примере важны:

  • #include "quilib_global.h"
  • QUILIBSHARED_EXPORT

Сколько бы классов и заголовочных файлов у вас не было, везде добавлете подобный include и макрос ко всем классам, которые должны быть доступны извне библиотеки.

Евгений, доброго времени суток и спасибо! Все получилось.

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

D
Nov. 15, 2019, 10:16 a.m.
Daulet

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:40points,
  • Rating points-8
LP
Nov. 12, 2019, 7:22 p.m.
Lev Parhimovich

C++ - Test 006. Enumerations

  • Result:50points,
  • Rating points-4
LP
Nov. 12, 2019, 6:35 p.m.
Lev Parhimovich

C++ - Test 005. Structures and Classes

  • Result:66points,
  • Rating points-1
Last comments
b
Nov. 9, 2019, 7:28 p.m.
bastonc

спасибо ещё раз. огромное, за уделённое время
b
Nov. 9, 2019, 7:24 p.m.
bastonc

Спасибо Вам большое. Буду изучать.
Nov. 9, 2019, 4:58 p.m.
Evgenij Legotskoj

Добрый день. По первым двум вопросам вы найдёте ответ в этой статье - PyQt5 - Урок 008. Работа с QTableWidget (Обновление урока 006) Что касается последнего вопроса, то я вам…
Nov. 9, 2019, 1:50 p.m.
Evgenij Legotskoj

Как и обещал, вы можете посмотреть новую статью QML - Урок 037. Кастомизация кнопок в QML (Обновление урока 002) . Там же найдёте ссылку на Git репозиторий. Не забудьте поставить звёз…
b
Nov. 8, 2019, 6:40 p.m.
bastonc

Приветствую. Подскажите пожалуйста пару моментов. 1. Как сделать столбец не редактируемый, а остальные ячейки остаются редактируемыми 2. Как оталвливать события двойного клика для реда…
Now discuss on the forum
H
Nov. 15, 2019, 4:18 p.m.
Hyperfish

Да, пробовал, с преобразованием int array[]={1,2,3,4,5,6,7} в jintArray(array). Если так, то программа компилируется без ошибок и предупреждений, но вываливается с ошибкой времени выполнени…
s
Nov. 15, 2019, 3:54 p.m.
sladkoewka

Добрый день! Подскажите пожалуйста, столкнулся с проблемой смены цвета прогресс бара через QPalette::Highlight. В MainWindow считается переменная температуры девайса. Результат вычисле…
Nov. 15, 2019, 3:06 p.m.
Evgenij Legotskoj

Что это такое Wrngdatalib ? Это namespace ? Скорее всего проблема в том, что те объекты тех классов, которые там присутствуют для обработки xml наследованы от QObject…
Nov. 15, 2019, 2:48 p.m.
Evgenij Legotskoj

Ну собственно поэтому я и сказал, что бесполезное это занятие.
Nov. 15, 2019, 2:27 p.m.
Evgenij Legotskoj

Добрый день. Вот эта статья кажется вполне подходящей к вашему вопросу Install OpenCV 3.4.4 on Ubuntu 16.04 (C++ and Python) Единственное, возможно, что вам потребуется ппра…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB