Приклади статичного та динамічного зв’язування dll

Продовжимо роботу зDLLі напишемо додаток, що тестує. Щоб більш гнучко перемикатися між бібліотекою, що відладжується, і кодом тесту, об'єднаємо за допомогоюМенеджера проектумодульDLLі тестуючий проект в одну групу. Спочатку розглянемо реалізацію статичного зв'язування.

Виконаємо командуВигляд/Менеджер проекту. Відкриється вікноМенеджера проектуз однією вершиноюMyDLL.dll. Розгорнемо її (рис.10.5) і знову звернемо.

статичного

Рис.10.5 – вікноМенеджера проектуіз завантаженоюDLL

статичного

Рис.10.6 – у вікніМенеджера проектуз'явилася нова вершина

У вікніМенеджера проектунатисніть кнопкуНовийі у вікніНові елементина сторінціНовийвиберемо піктограмуДодаток. НатиснемоОК. На екрані з'явиться пуста форма. Виконаємо командуВигляд/Менеджер проектуі побачимо, що у вікніМенеджера проектуз'явилася вершинаProject1.exe, що відповідає створюваному тестовому додатку (рис.10.6).

Виконаємо командуФайл/Зберегти проект які збережемо модуль тестової програми під ім'ямUTestDLL, а проект - під ім'ямPTestDLL.

статичного

Рис.10.7 – вікноМенеджера проектуіз завантаженоюDLLта тестом

Введемо командуФайл/Зберегти всеі збережемо проект під ім'ямTESTDLL. Знову виконаємо командуВигляд/Менеджер проектуі у вікніМенеджера проектупобачимо завантаженуDLLі вершинуPTestDLL.exe, відповідну створюваному тестовому додатку ( рис.10.7).

Розмістимо на формі вікно редагуванняEdit1та кнопкуButton1(рис.10.8).

статичного
динамічного

Рис.10.8 - тестовий додатокDLL: вихідний текст у вікні (а)

та результат кодування (б)

У модулі програми в обробник клацання на кнопці помістимо оператор:

Він бере текст, занесений користувачем у вікно редагуванняEdit1, кодує його за допомогою функціїCode_Decі повертає закодований рядок уEdit1.

Включимо в модуль програми після директиви препроцесора#pragmahdrstopдирективу, що включає заголовний файл бібліотеки:

Наведемо заголовний файл модуляUTestDLL.h: