Динамические библиотеки и плагины

  • Динамические библиотеки и система расширений

    На практике очень часто возникают случаи, когда требуется совместное использование какой-либо функции сразу в нескольких программах, работающих на одном компьютере. Не совсем экономично, если каждая из этих программ будет содержать одинаковый код, значит, необходим механизм для объединения общего кода в отдельных файлах (библиотеках), который позволял бы воспользоваться кодом таких функций. Такие файлы должны подгружаться динамически, в процессе работы самих программ, по мере необходимости и в зависимости от потребностей. Динамическая библиотека по своей структуре является архивом, содержащим группу объектных файлов. Использование динамических библиотек дает следующие преимущества: Далее...

  • Создание динамической библиотеки

    Следующий пример демонстрирует создание динамической библиотеки, содержащей только одну функцию. Далее...

  • Использование динамических библиотек в Qt

    Существуют два способа использования динамических библиотек. В первом способе связывание с динамической библиотекой производится в процессе компоновки самой программы. В этом случае динамическая библиотека загружается автоматически, при запуске использующей ее программы. Для этого способа потребуется подключить динамическую библиотеку в pro-файле в секции LIB (ее нужно указать с префиксом -l), а также и расположение ее заголовочных файлов в секции INCLUDEPATH. Например: Далее...

  • Использование расширений (plug-ins) в Qt

    Использование расширений это неотъемлемая часть любого профессионального приложения. По сути, расширение — это совместно используемая динамическая библиотека, предназначенная для загрузки в процессе исполнения основного приложения, которая обязательно должна реализовывать хотя бы один специальный интерфейс. Расширения делятся на две группы: Далее...

  • Поддержка собственных расширений в приложениях

    Связь с расширением производится с помощью интерфейса, поэтому приложение должно предоставлять по меньшей мере один интерфейс для использования расширения. Расширения загружаются приложением при помощи класса QPluginLoader, который содержит несколько методов. Самый часто используемый из них — это метод instance(), создающий и возвращающий указатель на объект расширения. Этот класс автоматически производит загрузку расширений, при указании имени файла расширения в его конструкторе. Выгрузку расширения, если в этом есть необходимость, можно осуществить с помощью метода unload(). Программа, показанная на рисунке, демонстрирует приложение, предоставляющее поддержку для использования расширений. Для этого ею предоставляется интерфейс для операций над текстом. Далее...

  • Создание расширения для приложения

    Теперь, когда мы имеем приложение, поддерживающее систему расширений, самое время создать для него хотя бы один компонент расширения. Далее...

  • Динамические библиотеки в Qt. Заключение

    Динамическая библиотека содержит код, который может использоваться сразу несколькими приложениями. В отличие от статических библиотек, код, содержащийся в динамической библиотеке, не включается в основной код приложения, а находится в отдельном файле. Если при исполнении программы производится вызов функции из динамической библиотеки, то в память компьютера загружаются только нужные функции. Это позволяет сэкономить объем дискового пространства и оперативной памяти, поскольку общедоступный код находится в отдельном файле, совместно используемом программами. Далее...