Разработка приложений на C++
  • Введение
  • Особенности разработки программ на С++
    • Указатель на функцию
    • Преобразование типов
    • Наследование
    • Виртуальные функции
    • Перегрузка операций
    • Функциональные объекты
    • Шаблоны
    • Пространства имён
    • Обработка исключительных ситуаций
    • Немного о компиляции и сборке
    • Рекоммендации по написанию кода
    • Новые возможности стандарта С++11
    • Терминология
  • Понятие структур данных
    • Массивы
    • Динамические структуры
  • Метапрограммирование
    • Шаблоны функций
    • Шаблоны классов
    • Специализация шаблонов
      • Пример: вычисление факториала
      • Пример: числа Фиббоначчи
    • Конфигурации шаблонных классов
  • Стандартная библиотека С++
    • Обзор стандартной библиотеки С++
    • Структура стандартной библиотеки С++
      • Концепции
    • Ввод-вывод данных
    • Примитивы, определённые в библиотеке STL
    • Итераторы
    • Контейнеры
      • Inplus: Как это работает
    • Алгоритмы
      • inplus: Как это работает
    • Примеры использования стандартной библиотеки С++
    • Стандартная библиотека С++/Вопросы
    • Стандартная библиотека С++/Примеры лабораторных работ
  • Разработка и использование библиотек программирования
    • Создание библиотек программирования
    • Использование динамических библиотек
    • Вопросы
    • Примеры лабораторных работ
  • Ответы на вопросы
Powered by GitBook
On this page
  • Статическая компоновка
  • Динамическая компоновка
  • Явное связывание динамической библиотеки
  1. Разработка и использование библиотек программирования

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

При разработке приложений программисту (да и программе) необходимо знать, какие функции предоставляет ему библиотека. Эту информацию даёт программисту и разрабатываемой программе заголовочный файл.

Статическая компоновка

В библиотеке программирования хранится байт-код функции (или другого ресурса программирования). При сборке приложения, после компиляции всех исходников в байт-код (объектные файлы), компоновщик собирает все объекты в один исполняемы файл. В этом случае в исполняемый файл попадает только код той библиотечной функции, которая используется. Размер исполняемого файла увеличивается, однако приложение, при запуске, не зависит от других файлов (динамических библиотек).

Динамическая компоновка

Статическая компоновка (использование статических библиотек) по реализации совпадает с динамической компоновкой. Разница наблюдается в принципе работы компоновщика.

Явное связывание динамической библиотеки

HMODULE WINAPI LoadLibrary(LPCTSTR lpFileName);  
BOOL WINAPI FreeLibrary(HMODULE hModule);  
FARPROC WINAPI GetProcAddress(HMODULE hModule, LPCSTR lpProcName);
LPTSTR MAKEINTRESOURCE(WORD wInteger);  
HRSRC WINAPI FindResource(HMODULE hModule, LPCTSTR lpName, LPCTSTR pType);  
HGLOBAL WINAPI LoadResource(HMODULE hModule, HRSRC hResInfo);  
HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName);  
int WINAPI LoadString(HINSTANCE hInstance, UINT uID, LPTSTR lpBuffer, int nBufferMax);
PreviousСоздание библиотек программированияNextВопросы

Last updated 2 years ago