четверг, 5 ноября 2009 г.

C/C++ Модульное программирование в linux: Динамическая загрузка библиотек dlopen



На мой взгляд, первый шаг к модульному программированию - это динамическая загрузка библиотек, конечно помимо других базовых знаний.

Наверняка, все знают чем отличается динамические библиотеки от статических. Но всё же я повторю. Когда вы используете статические библиотеки, их код внедряется в программный код вашей программы на этапе компиляции. Когда же вы используете динамические библиотеки, то их загрузка происходит уже после запуска приложения.

Что нам даст такой подход? А то, что наша программа сможет быть динамически расширяемой. А это даёт неограниченные возможности в масштабировании приложения. К тому же, если приложение большое и тяжелое, это позволит разгрузить его. У модульного программирования много преимуществ, не буду про это писать, а расскажу о своём примере.

Итак, мы создадим 2 библиотеки:
- одна будет содержать обычную функцию, при вызове которой мы будем получать текст в stdoutput;
- другая будет содержать класс, который содержит функцию на подобие той, что описана Выше.
Далее, мы создадим программу, подгружающую эти библиотеки и вызывающую функции из них.