Динамические библиотеки и плагины
-
Динамические библиотеки и система расширений
22.11.2011 Автор: admin
На практике очень часто возникают случаи, когда требуется совместное использование какой-либо функции сразу в нескольких программах, работающих на одном компьютере. Не совсем экономично, если каждая из этих программ будет содержать одинаковый код, значит, необходим механизм для объединения общего кода в отдельных файлах (библиотеках), который позволял бы воспользоваться кодом таких функций. Такие файлы должны подгружаться динамически, в процессе работы самих программ, по мере необходимости и в зависимости от потребностей. Динамическая библиотека по своей структуре является архивом, содержащим группу объектных файлов. Использование динамических библиотек дает следующие преимущества: Далее...
-
Создание динамической библиотеки
22.11.2011 Автор: admin
Следующий пример демонстрирует создание динамической библиотеки, содержащей только одну функцию. Далее...
-
Использование динамических библиотек в Qt
22.11.2011 Автор: admin
Существуют два способа использования динамических библиотек. В первом способе связывание с динамической библиотекой производится в процессе компоновки самой программы. В этом случае динамическая библиотека загружается автоматически, при запуске использующей ее программы. Для этого способа потребуется подключить динамическую библиотеку в pro-файле в секции LIB (ее нужно указать с префиксом -l), а также и расположение ее заголовочных файлов в секции INCLUDEPATH. Например: Далее...
-
Использование расширений (plug-ins) в Qt
22.11.2011 Автор: admin
Использование расширений это неотъемлемая часть любого профессионального приложения. По сути, расширение — это совместно используемая динамическая библиотека, предназначенная для загрузки в процессе исполнения основного приложения, которая обязательно должна реализовывать хотя бы один специальный интерфейс. Расширения делятся на две группы: Далее...
-
Поддержка собственных расширений в приложениях
22.11.2011 Автор: admin
Связь с расширением производится с помощью интерфейса, поэтому приложение должно предоставлять по меньшей мере один интерфейс для использования расширения. Расширения загружаются приложением при помощи класса QPluginLoader, который содержит несколько методов. Самый часто используемый из них — это метод instance(), создающий и возвращающий указатель на объект расширения. Этот класс автоматически производит загрузку расширений, при указании имени файла расширения в его конструкторе. Выгрузку расширения, если в этом есть необходимость, можно осуществить с помощью метода unload(). Программа, показанная на рисунке, демонстрирует приложение, предоставляющее поддержку для использования расширений. Для этого ею предоставляется интерфейс для операций над текстом. Далее...
-
Создание расширения для приложения
22.11.2011 Автор: admin
Теперь, когда мы имеем приложение, поддерживающее систему расширений, самое время создать для него хотя бы один компонент расширения. Далее...
-
Динамические библиотеки в Qt. Заключение
22.11.2011 Автор: admin
Динамическая библиотека содержит код, который может использоваться сразу несколькими приложениями. В отличие от статических библиотек, код, содержащийся в динамической библиотеке, не включается в основной код приложения, а находится в отдельном файле. Если при исполнении программы производится вызов функции из динамической библиотеки, то в память компьютера загружаются только нужные функции. Это позволяет сэкономить объем дискового пространства и оперативной памяти, поскольку общедоступный код находится в отдельном файле, совместно используемом программами. Далее...